JS 严格模式
- JS 严格模式是指令在 JavaScript 1.8.5 (ECMAScript5、ES5)开始引入的;
- 是一种旨在消除歧义、语法规范、维护安全的模式;
- 通过语句
"use strict"
进行声明。
声明与作用域
- 在文件头部声明,整个文件代码都要遵循严格模式;
- 在函数内部开头声明,函数体遵循严格模式;
- 函数的严格模式是最佳选择,没必要整个文件都严格,或者可以一个文件就写一个函数。
限制
不允许使用未声明的变量
(对象也是变量);- 不允许删除变量或函数;
- 函数中不允许有同名的参数;
- 函数里参数、变量有更多要求;
- 不允许使用八进制数;
- 不允许修改只读属性或由getter方法读取的属性(Object.prototype);
- 不允许删除一个不允许删除的属性;
- 不允许使用 with 语句;
- 不能在 if 语句中声明函数;
- eval 语句的作用域是独立的;
禁止使用 this 表示全局对象
;- 增加保留关键字,如
implements
、public
、yeild
等。
注意
- JavaScript 支持 “class” 和 “module”,自动启用严格模式;
- 很多浏览器部分支持严格模式,浏览器控制台一般默认不启用严格模式;
- 养成代码写规范的习惯。