JavaScript严格模式是一种采用具有限制性JavaScript变体的方式,使代码在更为规范的环境下运行。以下是关于JavaScript严格模式的核心要点:
开启方式:
- 全局开启:在脚本文件的第一行放置语句 "use strict";。
- 局部开启:在函数体的所有语句之前加上 "use strict";。
主要变化:
- 不允许意外创建全局变量:防止未声明的变量被隐式地创建为全局变量。
- 不允许静默失败的赋值操作:给未声明的全局变量赋值会引发错误。
- 删除属性异常:试图删除不可删除的属性时会抛出异常。
- 不允许删除变量或对象:尝试删除变量或对象会引发错误。
- 不允许删除函数:不能删除已定义的函数。
- 函数参数和对象属性不重名:函数参数和对象属性不允许重名。
- 不允许使用八进制:八进制字面量会引发错误。
- 不允许使用某些转义字符:如 0 等特定转义字符在严格模式下不允许使用。
- 禁止this指向全局对象:在严格模式下,this在函数外部或未指定时不会指向全局对象,而是保持为undefined。
- 不能给arguments赋值:arguments对象在严格模式下是只读的,不能给它赋值。
- 不能调用eval创建的变量:在严格模式下,eval创建的变量不能在外部作用域中访问。
严格模式有助于开发者避免潜在的错误,提高代码的安全性和性能,并保持向后兼容性。学习并应用严格模式是JavaScript开发中的一个重要实践。