ES5严格模式
除了正常运行模式,ECMAscript 5 添加了第二种运行模式:“严格模式”(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行。
严格模式的目的
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
- 消除代码运行的一些不安全之处,保证代码运行的安全
- 提高编译器的效率,增加运行速度
- 为未来新版本的javascript做好铺垫
严格模式体现了Javascript更合理,更安全,更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它。
使用方式
写在哪个作用域下,在该作用域下生效
“use strict”
注意: 尽量注意不要把严格模式写在全局
语法和行为改变
-
全局变量声明时,必须加var
-
this无法指向全局变量(包括window)
-
函数内重名参数名
-
arguments对象
arguments对象不允许被动态改变
4.新增保留字:implements,interface,let,package,private,protected,public,static,yield
-
创建eval作用域
-
构造函数必须通过new实例化对象,否则就会报错,因为this为undefined,此时无法设置属性
-
函数必须声明在顶层
将来Javascript的新版本会引起“块级作用域”,为了与新版本接轨,严格模式只允许在全局作用域或函数作用域的顶层声明函数,也就是说,不允许在非函数的代码块内声明函数