JavaScript严格模式(“use strict”)的简单描述
1. 使用前准备:
严格模式出现在ES6版本,在IDEA或者其他编译工具中调整版本
2. 严格模式的作用:
- 由于JavaScript语言自由性,需要增加约束来消除JavaScript语法的一些不合理、不严谨之处;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 为JavaScript的升级规范做好基础准备。
3. "use strict"书写位置:
- 在JavaScript代码开始处书写"use strict",针对整个JavaScript代码;
- 在函数体开始写上"use strict",针对特定函数。
4. 严格模式的要求及注意事项:
- 不允许定义全局变量:
- 未开启严格模式的情况下(只包含部分JavaScript代码):
<script>
i = 300000;
console.log(i);
</script>
控制台效果:
注:浏览器开启开发者模式,在控制台Console调试
- 开启开发者模式情况下(只包含部分JavaScript代码):
<script>
"use strict" // JavaScript严格模式
i = 300000; // 全局变量
console.log(i);
</script>
控制台效果:
- 解决方式:在全局变量前添加声明(let/var),变为局部变量。
- 创设eval作用域:
- 未开启严格模式:
eval() 在包含上下文中不再创建变量或函数
<script>
eval("var a = 8");
console.log(a); // 控制台显示8
</script>
-
严格模式下:
-
解决方式:
<script>
"use strict" // 严格模式
var result = eval("var a = 8; var b = 2; a + b");
console.log(result); // 结果为10
</script>
- 禁止使用with语句:
- 使用效果:
- 禁止this关键字指向全局对象:
-
代码对比:
-
运行结果:
- 保留字:
严格模式新增了一些保留字:implements, interface, let, package, private, protected, public, static, yield。 - arguments对象的限制
- 不允许函数有相同的参数,对象有相同的属性
- 不允许对只读属性赋值
等等
5. 总结
严格模式的出现,意味着JavaScript在向着更规范化的方向发展,在编写JavaScript代码时最好要开启严格模式,让自己代码更加规范、合理。