🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
专栏名称 | 专栏介绍 |
《C语言》 | 本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
《网络协议》 | 本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
《docker容器精解篇》 | 全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
《linux系列》 | 本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
《python 系列》 | 本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
《试题库》 | 本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录
⛳️ 推荐
专栏介绍
JavaScript 严格模式(Strict Mode)
什么是严格模式
如何启用严格模式
严格模式的主要限制
1. 禁止使用未声明的变量
2. 禁止删除操作
3. 禁止重复属性名
4. 禁止重复参数名
5. 禁止八进制表示法
6. 禁止使用 with 语句
7. this 指向变化
8. arguments 对象行为变化
严格模式的好处
严格模式的使用建议
严格模式的注意事项
总结
JavaScript 严格模式(Strict Mode)
什么是严格模式
严格模式("use strict")是 ECMAScript 5 (ES5) 引入的一种运行模式,旨在使 JavaScript 代码在更严格的条件下运行。它的主要目的包括:
- 消除 JavaScript 语法的不合理、不严谨之处,减少怪异行为
- 消除代码运行的不安全之处,保证代码安全
- 提高编译器效率,增加运行速度
- 为未来 JavaScript 新版本做好铺垫
严格模式体现了 JavaScript 更合理、更安全、更严谨的发展方向,包括 IE 10 在内的主流浏览器都已支持它。
如何启用严格模式
严格模式有两种启用方式:
全局启用:在脚本文件的第一行添加
"use strict";,整个脚本文件将运行在严格模式下"use strict"; var x = 10; // 正常运行 y = 20; // 报错:ReferenceError: y is not defined函数级启用:在函数体的第一行添加
"use strict";,仅该函数运行在严格模式下function myFunction() { "use strict"; var a = 5; b = 10; // 报错:ReferenceError: b is not defined }
注意:ES 模块(使用
import/export的文件)会默认启用严格模式,无需手动添加"use strict";。
严格模式的主要限制
1. 禁止使用未声明的变量
在严格模式下,变量必须先用var、let或const声明,否则会报错:
"use strict"; x = 10; // 报错:ReferenceError: x is not defined2. 禁止删除操作
不能删除变量、函数或函数参数:
"use strict"; var x = 10; delete x; // 报错:SyntaxError: Delete of an unqualified identifier3. 禁止重复属性名
对象字面量中不能有重复属性名:
"use strict"; var obj = { a: 1, a: 2 }; // 报错:SyntaxError: Duplicate data property in object literal not allowed in strict mode4. 禁止重复参数名
函数参数不能重复:
"use strict"; function func(a, a) { } // 报错:SyntaxError: Duplicate parameter name not allowed in this context5. 禁止八进制表示法
以0开头的数字(八进制表示)在严格模式下被视为语法错误:
"use strict"; var n = 010; // 报错:SyntaxError: Octal literals are not allowed in strict mode6. 禁止使用 with 语句
with语句在严格模式下被禁止:
"use strict"; var o = { a: 1 }; with (o) { // 报错:SyntaxError: Strict mode code may not include a with statement a = 2; }7. this 指向变化
在普通函数中,严格模式下this为undefined而不是全局对象:
"use strict"; function func() { console.log(this); // 输出 undefined } func();8. arguments 对象行为变化
在严格模式下,arguments对象不再与命名参数同步:
function func(a) { "use strict"; a = 2; console.log(arguments[0]); // 输出 1(不随 a 变化) } func(1);严格模式的好处
- 减少隐蔽错误:未声明变量直接赋值会报错,避免意外创建全局变量
- 提高代码安全性:禁用
eval相关的危险行为,防止变量泄露 - 便于优化:引擎可以更好地优化代码,因为行为更可预测
- 为未来铺路:提前避免未来可能的语法冲突(如保留字)
- 增强调试能力:更多运行时错误会被捕获,帮助更快定位问题
严格模式的使用建议
- 在新项目中默认启用:建议在新项目中全局启用严格模式
- 团队协作项目:在多人协作的大型项目中使用严格模式,保持代码一致性
- 库和框架开发:作为库或框架开发者,使用严格模式确保使用者遵循规范
- ES模块项目:ES6+ 的模块默认启用严格模式,无需额外添加
严格模式的注意事项
- 严格模式不会显著提升运行速度,但通过减少运行时检查可以间接提升执行稳定性
- 老旧代码可能依赖非严格行为,迁移时需测试验证
- 兼容性:现代浏览器都支持严格模式,但老版本浏览器可能不支持
总结
严格模式是 JavaScript 开发中的重要实践,它通过限制一些不安全、不规范的行为,帮助开发者编写更健壮、更安全、更易于维护的代码。正如知识库中所述:"严格模式体现了 JavaScript 更合理、更安全、更严谨的发展方向"。在现代 JavaScript 开发中,启用严格模式已成为最佳实践,建议在所有新项目中默认使用。
"严格模式不是为了限制你,而是为了让你的代码更可靠。" —— 严格模式的核心价值
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙