js 严格模式

更加严格的语法,叫做严格模式。

"use strict";
【注】在哪个作用域下,写上这句话,哪个作用域下的语法,就必须采用严格模式。

【注】一般情况下,大家不要将严格模式写在全局的位置。

function show(){
  "use strict";
  var a = 10;
}
show();
alert(a);


使用严格模式以后,有哪些变化
1、声明变量必须使用var
2、函数内部不允许参数重名
3、arguments对象不允许被动态改变,传参的时候值是多少,arguments里面永远存储的是多少。
4、新增保留字:implements, interface, let, package, private, protected, public, static, yield。

function show(num, num, num2){//非严格模式下形参重名并不会报错
  alert(num + ", " + num2);//20, 30
}
show(10, 20, 30);
"use strict";
function show(num, num1, num2){//严格模式下形参重名会报错
   alert(num + ", " + num2);//10, 30 
} 
show(10, 20, 30);
function show(a){
a = 20;
alert(a + ", " + arguments[0]);
}

show(10); //20, 20    非严格模式修改了arguments的值


function show(a){
"use strict";
a = 20;
alert(a + ", " + arguments[0]);
}

show(10); //20, 10   严格模式不会修改arguments的值。
"use strict";
function show(implements){
  var interface = 10;
  alert(implements);
}

show(20);//写了"use strict"   报错implements为关键字
原文地址:https://www.cnblogs.com/taohuaya/p/9546600.html