- 如何开启
'use strict' // 全局开启
function fn() {
'use strict' // 某个函数开启
}
- 特点
- 全局变量必须先声明
"use strict";
n = 10; // ReferenceError: n is not defined
- 静止使用 with
"use strict";
var obj = { x: 10 };
with (obj) {
// Uncaught SyntaxError: Strict mode code may not include a with statement
console.log(x);
}
- 创建 evel 作用域
"use strict";
var x = 10;
eval("var x = 20; console.log(x)");
console.log(x);
- 静止 this 指向 window
"use strict";
function fn() {
console.log("this", this); // undefined
}
fn();
- 函数参数不能重名
"use strict";
// Uncaught SyntaxError: Duplicate parameter name not allowed in this context
function fn(x, x, y) {
return;
}