Web前端入门第 55 问:JavaScript 严格模式与非严格模式区别
JavaScript 默认是非严格模式的,可以通过 "use strict"; 启用严格模式。此声明语句可以放在 JS 文件顶部,也可以放在函数内部。启用严格模式
1、外部脚本在 JS 文件开头声明,内部脚本在 静默错误转显式错误
删除不可删除的属性:delete Object.prototype; 在严格模式下报错。
重复参数名:function(a, a) {} 在严格模式下报语法错误。
只读属性赋值:NaN = 1; 在严格模式下报错。
this 指向
非严格模式:全局函数中 this 指向全局对象(如 window)。
严格模式:全局函数中 this 为 undefined。
eval 和 arguments 限制
eval 变量泄漏:严格模式下 eval 中的变量不会污染外部作用域。
禁用 arguments.callee:防止递归调用导致性能问题。
其他限制
八进制表示:禁止 0123,需用 0o123。
with 语句:严格模式下禁用,避免作用域混乱。
保留字限制:如 interface、private 等不能作为变量名。
写在最后
建议始终启用严格模式,强制更安全的编码实践,避免隐式错误,提升代码质量。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]