一、严格模式的作用
严格模式可以让我们及早发现错误,使代码更安全规范,推荐在代码中一直保持严格模式运行。
二、基本差异
2.1 变量必须使用关键词声明,未声明的变量不允许赋值
"use strict";
url = 'houdunren.com'; //url is not defined
2.2 强制声明防止污染全局
"use strict";
function run() {
web = "houdunren";
}
run();
console.log(web); //houdunren
2.3 关键词不允许做变量使用
"use strict";
var public = 'houdunren.com';
2.4 变量参数不允许重复定义
"use strict";
//不允许参数重名
function hd(name, name) {}
2.5 单独为函数设置严格模式
function strict(){
"use strict";
return "严格模式";
}
function notStrict() {
return "正常模式";
}
为了在多文件合并时,防止全局设置严格模式对其他没使用严格模式文件的影响,将脚本放在一个执行函数中。
(function () {
"use strict";
url = 'houdunren.com';
})();
三、解构差异
// 非严格模式可以不使用声明指令,严格模式下必须使用声明。所以建议使用 let 等声明。
// "use strict";
({name,url} = {name:'后盾人',url:'houdunren.com'});
console.log(name, url);