严格模式通过”use strict”启用,禁止未声明变量、重复参数、删除不可配置属性,限制八进制语法,强化eval/arguments行为,使this指向更安全,并增强关键字检查,提升代码质量与可维护性。

JavaScript 严格模式(Strict Mode)是一种在 ECMAScript 5 引入的语法和行为模式,通过在脚本或函数顶部添加 “use strict”; 来启用。它让代码在更严格的条件下运行,帮助开发者避免常见错误、防止不安全操作,并为未来的 JavaScript 版本铺路。
1. 禁止使用未声明的变量
在严格模式下,给未通过 var、let 或 const 声明的变量赋值会抛出错误。
例如:name = "Alice"; 在非严格模式中会隐式创建全局变量; 在严格模式下则会抛出 ReferenceError。
2. 禁止删除不可配置的属性和变量
尝试删除变量、函数或不可配置的对象属性时,严格模式会报错。
例如:var x = 1; delete x; 在非严格模式中静默失败; 在严格模式中会抛出 SyntaxError。
3. 函数参数名必须唯一
严格模式要求函数的参数名称不能重复。
立即学习“Java免费学习笔记(深入)”;
例如:function func(a, a) { } 在非严格模式中允许,但行为不可靠; 在严格模式中会直接抛出语法错误。
4. this 不再指向全局对象
在普通函数中,非绑定情况下调用时,this 在严格模式下为 undefined,而非 window(浏览器中)。
例如:function test() { return this; },调用 test() 返回 undefined(严格模式); 非严格模式返回全局对象。
5. 禁止使用八进制语法
以 0 开头的数字被视为八进制,在严格模式中是禁止的。
例如:var num = 010; 在严格模式下会抛出 SyntaxError; 应使用 0o10 表示八进制(ES6 新写法)。
6. 更严格的 eval 和 arguments 行为
eval 和 arguments 被视为保留关键字,不能被重命名或重新赋值。
不能定义名为 eval 或 arguments 的变量; arguments 对象不再动态绑定到参数变化。
7. 命名限制和保留词检查更严
一些未来可能使用的关键词(如 implements、interface、let、package、private 等)在严格模式中不能作为标识符使用。
基本上就这些。开启严格模式能提升代码质量,减少潜在 bug,推荐在所有现代 JavaScript 项目中使用。可以针对整个脚本或单个函数启用。
以上就是javascript_严格模式的特点的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1539641.html
微信扫一扫
支付宝扫一扫