严格模式能防止未声明变量赋值、重复参数名、重复对象属性名、非对象调用时this指向全局、with语句及不安全eval等行为,通过报错替代静默失败。

严格模式(Strict Mode)是 javaScript 中的一种运行模式,它让代码在更严格的条件下执行,能帮助开发者及早发现潜在错误、避免不安全操作,并禁用一些容易出错或已被淘汰的语法。
严格模式能防止哪些问题?
它会主动报错而不是静默失败,比如:
- 给未声明的变量赋值会抛出 ReferenceError(普通模式下会自动创建全局变量)
- 重复定义函数参数名(如
function foo(a, a) {})会报 SyntaxError - 对象中重复的属性名(如
{a: 1, a: 2})在严格模式下也报错(ES5+) -
this在非对象调用时为 undefined(普通模式下指向全局对象) - 禁用
with语句和部分eval行为,提升安全性和可预测性
如何启用严格模式?
有两种启用方式,作用范围不同:
- 整个脚本启用:在 js 文件或
<script></script>标签最顶部写"use strict";(必须是第一行有效语句,前面只能有注释) - 仅函数内启用:在函数体第一行写
"use strict";,只对该函数及其内部嵌套函数生效
注意:"use strict" 必须是字符串字面量,不能加变量、表达式,也不能用单引号以外的引号(虽然部分环境支持单引号,但规范要求双引号)。
动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版
525
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联javascript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
525 立即学习“Java免费学习笔记(深入)”;
严格模式不是万能的
它不会帮你发现逻辑错误,也不会自动修复代码。它只是收紧了语言规则,让“可疑行为”显性化。现代开发中,推荐在新项目中默认启用;老项目可逐步在函数级添加,降低迁移风险。模块(import/export)脚本默认就是严格模式,无需手动声明。
基本上就这些。