找回密码
 立即注册
首页 业界区 业界 Web前端入门第 55 问:JavaScript 严格模式与非严格模式 ...

Web前端入门第 55 问:JavaScript 严格模式与非严格模式区别

奄幂牛 2025-6-2 23:55:09
JavaScript 默认是非严格模式的,可以通过 "use strict"; 启用严格模式。此声明语句可以放在 JS 文件顶部,也可以放在函数内部。
启用严格模式


1、外部脚本在 JS 文件开头声明,内部脚本在 [/code]静默错误转显式错误

删除不可删除的属性:delete Object.prototype; 在严格模式下报错。
重复参数名:function(a, a) {} 在严格模式下报语法错误。
只读属性赋值:NaN = 1; 在严格模式下报错。
  1. [/code][size=4]this 指向[/size]
  2. 非严格模式:全局函数中 this 指向全局对象(如 window)。
  3. 严格模式:全局函数中 this 为 undefined。
  4. [code]
复制代码
eval 和 arguments 限制

eval 变量泄漏:严格模式下 eval 中的变量不会污染外部作用域。
禁用 arguments.callee:防止递归调用导致性能问题。
  1. [/code][size=4]其他限制[/size]
  2. 八进制表示:禁止 0123,需用 0o123。
  3. with 语句:严格模式下禁用,避免作用域混乱。
  4. 保留字限制:如 interface、private 等不能作为变量名。
  5. [code]
复制代码
写在最后

建议始终启用严格模式,强制更安全的编码实践,避免隐式错误,提升代码质量。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册