ECMAScript的严格模式
严格模式是ES5提出的更严格的js语法标准,修正了一些不合理的语法,增强了错误检查。
代码使用严格模式的方法:
在函数内部开头'use strict'; 函数将以严格模式执行。
在文件开头全局作用域下'use strict'; 整个代码将以严格模式执行。
严格模式相比之前有什么主要区别:
1.不允许使用width
2.不加var声明变量将报错
3.arguments是静态副本,不会改变参数(引用类型的参数除外,这与引用类型本身有关)
4.delete 参数将报错
delete 不可配置的属性将报错(Object.create方式创建的对象属性)
修改不可写的属性将报错(Object.create方式创建的对象属性)
5.对象的属性名重复将报错
6.许使用8进制数将报错
7.eval,arguments变成了关键字
8.eval拥有独立作用域
9.一般的函数调用this指向window的情况变为this指向null
10.apply/call传入null/undeined时,this不指向window,指向null/undeined
11.arguments.caller和arguments.callee被禁用