严格模式
更加严格的语法规范。
设置严格模式:
找一个作用域,“use strict”; 这个区域下的代码都必须是严格模式。
【注】一般情况下不要再全局设置严格模式。
- 全局变量声明时,必须加var
"use strict";
num = 10;
alert(num);
- 函数内重名属性
use strict";
function show(b, b, c){
alert(b + ", " + c);
}
show(10, 20, 30);
- arguments对象不允许被动态改变
function show(a, b){
"use strict";
a = "hello";
alert(a + ", " + b);
alert(arguments[0] + ', ' + arguments[1]);
}
show(10, 20);
- 在严格模式下,新增了好多关键字和保留字
implements, interface, let, package, private, protected, public, static, yield。(事实这些我测试了下竟然是可以使用的2019/02/26谷歌浏览器)
"use strict";
var let = 10;
alert(let);
- this无法指向全局对象;
"use strict";
console.log(“已经进入严格模式”);
function a(){
this.b = 10; //报错,因为this是undefined
}
a();