说说严格模式的限制

2017-01-13 14:14:09

  严格模式主要有以下限制:

  变量必须声明后再使用

  函数的参数不能有同名属性,否则报错

  不能使用with语句

  不能对只读属性赋值,否则报错

  不能使用前缀0表示八进制数,否则报错

  不能删除不可删除的属性,否则报错

  不能删除变量delete prop,会报错,只能删除属性delete global[prop]

  eval不会在它的外层作用域引入变量

  eval和arguments不能被重新赋值

  arguments不会自动反映函数参数的变化

  不能使用arguments.callee

  不能使用arguments.caller

  禁止this指向全局对象

  不能使用fn.caller和fn.arguments获取函数调用的堆栈

  增加了保留字(比如protected、static和interface)

  设立"严格模式"的目的,主要有以下几个:

  消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

  消除代码运行的一些不安全之处,保证代码运行的安全;

  提高编译器效率,增加运行速度;

  为未来新版本的Javascript做好铺垫。

  注:经过测试IE6,7,8,9均不支持严格模式。

为您推荐