strive
strive
#### 使用 `set`的小例子: ``` javascript let user = { firstName: 'Strive', lastName: 'Chen' }; user.age = 25; console.group('User'); console.log(user.firstName); console.log(user.lastName); console.log(user.age); console.groupEnd(); user.age = '随便一些东西' console.log(user.age); user.age = -100 console.log(user.age);...
#### 使用 `deleteProperty` 小例子 > 大多数情况,有些对象身上的属性,我们不希望删除的 ``` javascript let department = { id: '001', name: 'Strive', sex: 'women' } console.group('Department'); console.log(department.id); console.log(department.name); console.log(department.manager); console.groupEnd(); // delete department.id; // console.log(department); const...
### 简单实现一个`sleep` > 用 promise + async await实现 ``` javascript var sleep = function(time, i){ return new Promise((resolve, reject)=>{ setTimeout(()=>{ resolve(i); },time) }) } var run= async function(){ for(var i=0;...
> 以上是论证1,可以看出强行加了一个引用赋值是从左往右的(简直就是瞎说),这个可以说是错误的,因为 js赋值操作是 `从右到左`, 可以查证的地方很多,自行百度。 接下来看另一个论证观点: 每个观点都是可以查证的(不提供链接,自行百度、google); #### 总结下来两点: 1. 运算符优先级 `.`的优先级高于 `=`, 所以先执行 `a.x`, 堆内存中的 `{n:1}` 就会变成 `{n:1, x:undefined}`,相应的 `b.x`也变了,因为指向的是同一个对象 2. 赋值操作是`从右到左`,所以先执行 `a={n:2}`,a的引用就被改变了。但是需要特别注意,这个值随后又赋值给了 `a.x`,这时候,其实是第一步的 `{n:1, x:undefined}` 那个对象。也就是 `b.x`。 ####...
- 分别用ES5和ES6找出数组最大值? ```javascript // ES5: > Math.max.apply(Math, [-10,90,300,20]) // ES6: > Math.max(...[-10,90,300,20]) ``` - 分别用ES5和ES6把其中一个数组的值添加到另一个数组中? ```javascript // ES5: var arr1=[1,2]; var arr2=[3,4]; arr1.push.apply(arr1,arr2); //arr1 -> [1,2,3,4] // ES6: const arr1=[1,2];...