news 2026/6/15 19:54:42

HoRain云--JavaScript严格模式:提升代码质量的关键

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--JavaScript严格模式:提升代码质量的关键

🎬 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 更合理、更安全、更严谨的发展方向,包括 IE 10 在内的主流浏览器都已支持它。

如何启用严格模式

严格模式有两种启用方式:

  1. 全局启用:在脚本文件的第一行添加"use strict";,整个脚本文件将运行在严格模式下

    "use strict"; var x = 10; // 正常运行 y = 20; // 报错:ReferenceError: y is not defined
  2. 函数级启用:在函数体的第一行添加"use strict";,仅该函数运行在严格模式下

    function myFunction() { "use strict"; var a = 5; b = 10; // 报错:ReferenceError: b is not defined }

注意:ES 模块(使用import/export的文件)会默认启用严格模式,无需手动添加"use strict";

严格模式的主要限制

1. 禁止使用未声明的变量

在严格模式下,变量必须先用varletconst声明,否则会报错:

"use strict"; x = 10; // 报错:ReferenceError: x is not defined

2. 禁止删除操作

不能删除变量、函数或函数参数:

"use strict"; var x = 10; delete x; // 报错:SyntaxError: Delete of an unqualified identifier

3. 禁止重复属性名

对象字面量中不能有重复属性名:

"use strict"; var obj = { a: 1, a: 2 }; // 报错:SyntaxError: Duplicate data property in object literal not allowed in strict mode

4. 禁止重复参数名

函数参数不能重复:

"use strict"; function func(a, a) { } // 报错:SyntaxError: Duplicate parameter name not allowed in this context

5. 禁止八进制表示法

以0开头的数字(八进制表示)在严格模式下被视为语法错误:

"use strict"; var n = 010; // 报错:SyntaxError: Octal literals are not allowed in strict mode

6. 禁止使用 with 语句

with语句在严格模式下被禁止:

"use strict"; var o = { a: 1 }; with (o) { // 报错:SyntaxError: Strict mode code may not include a with statement a = 2; }

7. this 指向变化

在普通函数中,严格模式下thisundefined而不是全局对象:

"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);

严格模式的好处

  1. 减少隐蔽错误:未声明变量直接赋值会报错,避免意外创建全局变量
  2. 提高代码安全性:禁用eval相关的危险行为,防止变量泄露
  3. 便于优化:引擎可以更好地优化代码,因为行为更可预测
  4. 为未来铺路:提前避免未来可能的语法冲突(如保留字)
  5. 增强调试能力:更多运行时错误会被捕获,帮助更快定位问题

严格模式的使用建议

  1. 在新项目中默认启用:建议在新项目中全局启用严格模式
  2. 团队协作项目:在多人协作的大型项目中使用严格模式,保持代码一致性
  3. 库和框架开发:作为库或框架开发者,使用严格模式确保使用者遵循规范
  4. ES模块项目:ES6+ 的模块默认启用严格模式,无需额外添加

严格模式的注意事项

总结

严格模式是 JavaScript 开发中的重要实践,它通过限制一些不安全、不规范的行为,帮助开发者编写更健壮、更安全、更易于维护的代码。正如知识库中所述:"严格模式体现了 JavaScript 更合理、更安全、更严谨的发展方向"。在现代 JavaScript 开发中,启用严格模式已成为最佳实践,建议在所有新项目中默认使用。

"严格模式不是为了限制你,而是为了让你的代码更可靠。" —— 严格模式的核心价值

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 18:06:29

【读书笔记】《颜真卿传》

《颜真卿传》生平与成就 颜真卿(709—785),唐代著名书法家,更是中国历史上忠义典范。他与李白、杜甫生活在同一时代,却远不止是书法大家,更是安史之乱中的柱国之臣。宋代苏东坡曾评价其书法“与杜子美诗相似…

作者头像 李华
网站建设 2026/6/15 11:04:20

QMC解码器:3步实现QQ音乐加密音频的跨平台自由播放

QMC解码器:3步实现QQ音乐加密音频的跨平台自由播放 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还记得那些只能在QQ音乐客户端播放的音频文件吗?…

作者头像 李华
网站建设 2026/6/15 13:16:03

5个超实用技巧:用Hidden Bar彻底整理你的Mac菜单栏

5个超实用技巧:用Hidden Bar彻底整理你的Mac菜单栏 【免费下载链接】hidden An ultra-light MacOS utility that helps hide menu bar icons 项目地址: https://gitcode.com/gh_mirrors/hi/hidden 还在为Mac菜单栏上密密麻麻的图标而烦恼吗?Hidde…

作者头像 李华
网站建设 2026/6/15 11:08:13

BabelDOC 终极指南:一键实现专业级PDF翻译与文档处理

BabelDOC 终极指南:一键实现专业级PDF翻译与文档处理 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC BabelDOC是一款革命性的开源文档翻译工具,专门针对学术论文、技术文…

作者头像 李华