严格模式通过主动报错暴露隐性问题:未声明变量赋值抛出ReferenceError、this为undefined而非全局对象、禁止对只读属性赋值等;以'use strict'指令启用,兼容旧浏览器,提升代码安全性与可维护性。

JavaScript 严格模式是一种让代码在更规范、更安全环境下运行的机制,它通过主动报错来暴露原本被忽略的问题,而不是让错误悄悄过去。
严格模式能拦住哪些“隐形坑”
普通模式下,很多低级错误不会报错,只默默执行,结果难以预料:
- 忘记用 let/const/var 声明就直接赋值(比如
a = 10),会意外创建全局变量;严格模式下直接抛出ReferenceError - 函数里调用时没绑定对象,this 在普通模式下自动变成
window或global,容易污染全局;严格模式下this就是undefined,立刻暴露问题 - 对只读属性赋值、删除变量或函数(
delete x)、使用八进制字面量(如010)等操作,在严格模式下都会明确报错
‘use strict’ 是怎么起作用的
它不是一条语句,而是一条“指令字符串”,写在脚本或函数的最开头位置,浏览器识别后就切换执行规则:
- 写在文件第一行 → 整个脚本启用严格模式
- 写在一个函数体第一行 → 只有这个函数内部受约束
- 老版本浏览器不认识它,会直接忽略,不影响兼容性
为什么现在还值得用
虽然 ES6 模块默认启用严格模式,但普通脚本、IIFE、或需要兼容旧环境的代码仍需手动加。它带来的好处很实在:
标签: javascript es6 java typescript 浏览器 win 为什么
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~