why
ES5的出现,修改了一些特性,为了保证旧的功能能够使用,部分的修改是默认不生效的。需要“use strict
”来激活这些新特性。
how
- 处于脚本顶部,整个脚本文件都已“现代”模式进行工作。
- 可以放在函数体的开头,只在该函数中启用严格模式
- 必须出现在脚本最顶部,否则无法使用。
- 没有办法取消
- 支持严格模式的浏览器:Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。
- 严格模式下不能使用未声明的变量(包括函数,对象)。
- 不能删除变量
- 不能用arguments 、eval
<script>
"use strict";
x = 3.14;//Uncaught ReferenceError: x is not defined
x = {p1: 10}//Uncaught ReferenceError: x is not defined
let x = 3.14;
delete x;//Uncaught SyntaxError: Delete of an unqualified identifier in strict mode.
let arguments = 1;//Uncaught SyntaxError: Unexpected eval or arguments in strict mode
</script>