严格模式是一种JavaScript的执行模式,它可以让代码更加安全,减少一些怪异行为的发生。严格模式可以应用到整个脚本或个别函数中,可以将严格模式分为为脚本开启严格模式和为函数开启严格模式两种情况。
为脚本开启严格模式,需要在脚本的开头添加如下代码:
'use strict';
为函数开启严格模式,需要在函数的开头添加如下代码:
function strictFunction() { 'use strict'; // 函数体 }
严格模式下的一些限制和变化包括:
- 禁止使用未声明的变量。
- 禁止删除变量、函数、函数参数。
- 禁止对只读属性赋值。
- 禁止使用八进制数字。
- 禁止使用with语句。
- 禁止使用eval和arguments作为变量名。
- 禁止在函数内部遮盖arguments变量。
- 禁止对arguments赋值。
- 禁止使用Function构造函数来创建函数。
- this的值不再是全局对象。
- 严格模式可以让代码更加规范,减少一些潜在的错误,但也需要注意一些细节问题,例如在严格模式下使用callee和caller属性会报错。