背景

js 严格模式

徐徐
前端
发表于 2025-04-15 16:00:00
🌺 摘要
js 严格模式的限制和存在的意义

严格模式的限制

  1. 变量必须声明后再使用
  2. 函数的参数不能有同名属性,否则报错
  3. 不能使用 with 语句
  4. 不能对只读属性赋值,否则报错
  5. 不能使用前缀 0 表示八进制数,否则报错
  6. 不能删除不可删除的属性,否则报错
  7. 不能删除变量 delete prop,会报错,只能删除属性 delete global[prop]
  8. eval 不会在它的外层作用域引入变量
  9. eval 和 arguments 不能被重新赋值
  10. arguments 不会自动反映函数参数的变化
  11. 不能使用 arguments.callee
  12. 不能使用 arguments.caller
  13. 禁止 this 指向全局对象
  14. 不能使用 fn.caller 和 fn.arguments 获取函数调用的堆栈增加了保留字(比如 protected、static 和 interface)

设立”严格模式”的目的

主要有以下几个

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

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

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

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

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

文章发表于 2025-04-15 16:00:00
作者:徐徐
转载请注明出处
上一篇:连续多个 bind,最后this指向是什么?
下一篇:状态码