严格模式必须遵循以下规则:
变量名必须声明后再使用
函数的参数不能同名
不能使用with语句
不能对只读属性赋值
不能使用前缀0表示八进制数
不能删除不可删除的属性
eval不会再它的外层作用域引入变量
eval和arguments不能被重新赋值
不能使用arguments.callee、arguments.callee.caller
禁止this指向全局对象window
不能使用fn.caller和fn.arguments获取函数调用堆栈
增加保留字(比如protected、static、interface)
箭头函数:
箭头函数是对JavaScript this绑定错误的处理。
目前掌握的this用法:
this 在对象的属性中,指向window
this 在对象的方法中,指向调用该方法的对象
this 在回调函数中使用,会指向window因为在回调函数中,this指向哪个函数都会说不通,因此this自动会重新指向window
this 在事件侦听函数中使用,this指向添加事件侦听的对象
this 在箭头函数中,指向函数外部
Symobl:
表示独一无二的。作用:消除魔术字符串,设置对象的属性不可修改
生成器函数:
1 function* fn(a,b){
2 yield a;
3 a++;
4 yield a;
5 yield b;
6 b++;
7 yield b;
8 yield a+b;
9 return a+b;
10 }
11 var a=fn(3,4);
12 /* console.log(a.next());
13 console.log(a.next());
14 console.log(a.next());
15 console.log(a.next());
16 console.log(a.next());
17 console.log(a.next()); */
18 for(let value of a){
19 console.log(value);
20 }
解构赋值:
解构赋值分为两种: 数组的解构赋值,对象的解构赋值
作用1:交换值
1 function fn([a,b=2]){
2 console.log(a,b);
3 }
4 fn([3,5]); // 3 , 5
5 fn([4]); // 4, 2
作用和数组解构的作用因该是一致的
4362

被折叠的 条评论
为什么被折叠?



