跟我学习javascript的严格模式,核心结论是:在脚本或函数顶部添加 “use strict”; 指令,可启用更严格的错误检查机制,防止意外创建全局变量并禁止使用已删除的功能,从而提升代码质量与执行效率。
严格模式的基础概念与启用方式
什么是严格模式
严格模式(Strict Mode)是ECMAScript 5引入的一种重新解释JavaScript代码的方式,它通过改变语言的语义,使得代码在更严格的条件下运行,业内专家指出,这种模式旨在消除语言中不合理、不严谨的部分,减少代码中的一些怪异行为,并提高编译器优化代码的能力。
如何启用严格模式
启用严格模式非常简单,只需在脚本或函数的开头添加字符串 “use strict”; 即可。
- 脚本级严格模式:将整个脚本文件置于严格模式下。
操作路径:在JS文件的第一行添加 “use strict”;
- 函数级严格模式:仅某个函数内部处于严格模式。
- 操作路径:在函数体的第一行添加 “use strict”;
示例代码

// 脚本级严格模式
"use strict";
var x = 10; // 正常
// 函数级严格模式function myFunction() {"use strict";var y = 20; // 正常}
严格模式带来的主要变化
变量声明的规范化
在正常模式下,如果未使用 var 关键字声明变量,该变量会自动成为全局变量,而在严格模式下,这种行为被禁止,会导致 ReferenceError。
- 正常模式:
function test() { a = 1; // a 成为全局变量 } test(); console.log(a); // 1 - 严格模式:
"use strict"; function test() { a = 1; // 报错:ReferenceError: a is not defined } test();
禁止删除变量和函数
严格模式下,尝试删除变量、函数或函数参数将导致语法错误。
- 示例:
"use strict"; var x = 10; delete x; // 报错:SyntaxError
函数参数必须唯一
在正常模式下,函数可以拥有同名参数,后面的参数会覆盖前面的参数,严格模式下,这会导致语法错误。

- 示例:
"use strict"; function test(a, a) { // 报错:SyntaxError console.log(a); }
this 值的绑定更严格
在正常模式下,如果函数作为普通函数调用,this 指向全局对象(浏览器中为 window),严格模式下,如果函数作为普通函数调用,this 为 undefined。
- 示例:
"use strict"; function test() { console.log(this); // undefined } test();
严格模式的最佳实践
始终使用严格模式
行业共识认为,在现代JavaScript开发中,始终启用严格模式是一个良好的实践,这有助于捕获潜在的bug,并提高代码的可维护性。
避免混用严格模式和非严格模式
虽然可以在同一脚本中混合使用严格模式和非严格模式,但这会导致代码行为不一致,增加调试难度,建议在整个项目或模块中统一使用严格模式。
使用现代构建工具
许多现代JavaScript构建工具(如Webpack、Babel)默认启用严格模式,确保你的开发环境配置正确,以充分利用严格模式的优势。

Q&A:跟我学习javascript的严格模式
Q1: 严格模式会影响性能吗?
A1: 严格模式本身不会显著影响性能,相反,由于它消除了语言中的一些怪异行为,编译器可以更有效地优化代码,据统计,多数情况下,严格模式下的代码执行效率与正常模式相当或略高。
Q2: 如何在旧版浏览器中使用严格模式?
A2: 严格模式是ECMAScript 5引入的特性,因此在不支持ES5的旧版浏览器中可能无法正常工作,建议使用Babel等工具将代码转译为兼容旧版浏览器的版本。
Q3: 严格模式可以禁用吗?
A3: 严格模式一旦启用,无法在脚本或函数内部禁用,如果需要在特定代码块中禁用严格模式,可以将该代码块放在一个非严格模式的函数中。
跟我学习javascript的严格模式,关键在于理解其启用方式、主要变化及最佳实践,通过启用严格模式,你可以编写更健壮、更可维护的代码,始终使用严格模式,避免混用,并利用现代构建工具,将有助于提升你的开发效率和代码质量。
文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/481750.html<
