JavaScript严格模式(二)
在严格模式下哪些关于变量的操作是禁止的
禁止意外创建变量
在严格模式下,不允许意外创建全局变量
- 非严格模式下
v = 100;
console.log(v);//100
- 严格模式下
//开启严格模式
"use strict"
v = 100;
console.log(v);//报错
静默失败转为异常
所谓静默失败就是既不报错也没有任何效果,例如改变常量的值。在严格模式下,静默失败会转换成抛出异常。
//开启严格模式
"use strict"
const ADD = 3.14;//定义一个常量
var ADD = 1.14;//重新赋值
console.log(ADD);
禁用delete关键字
在严格模式下,不能对变量使用delete运算符
- 非严格模式下
var v = 100;//定义一个变量
console.log(v);//100
delete v;//删除全局变量
console.log(v);//100
- 严格模式下
//开启严格模式
"use strict"
var v = 100;//定义一个变量
console.log(v);
delete v;//删除全局变量
console.log(v);//报错
对变量名的限制
在严格模式下,JavaScript对变量名也有限制。特别不能使用一下内容作为关键字:
测试
//开启严格模式
"use strict"
var static = 100;
console.log(static);//直接报错