严格模式通过"use strict"启用,限制不安全语法,禁止未声明变量、删除变量、重复参数等,提升代码安全与质量。

JavaScript 严格模式(Strict Mode)是一种在 ECMAScript 5 中引入的执行模式,它通过限制某些不安全或易出错的语言行为,帮助开发者编写更清晰、更可靠的代码。启用严格模式后,JavaScript 引擎会以更严格的规则来解析和执行代码,从而捕获潜在错误并防止一些“静默失败”。
严格模式可以通过在脚本或函数的顶部添加字符串 "use strict"; 来启用。这个指令必须出现在脚本或函数的第一行,否则无效。
启用方式分为两种:例如:
"use strict";
function myFunc() {
// 整个脚本都在严格模式下
}
或局部:
立即学习“Java免费学习笔记(深入)”;
function myFunc() {
"use strict";
// 只有这个函数在严格模式下
}
严格模式改变了 JavaScript 的多个默认行为,以下是几个核心差异点:
1. 禁止意外创建全局变量在非严格模式中,给未声明的变量赋值会自动创建一个全局变量。严格模式下,这会抛出错误。
// 非严格模式:运行正常,创建全局变量 mistypedVariable = 10; // 严格模式:抛出 ReferenceError "use strict"; mistypedVariable = 10; // 错误!变量未声明
试图删除变量、函数或不可配置属性时,严格模式会直接报错,而非静默失败。
享有盛誉的PHP高级教程,Zend Framework核心开发人员力作,深入设计模式、PHP标准库和JSON 。 今天,PHP已经是无可争议的Web开发主流语言。PHP 5以后,它的面向对象特性也足以与Java和C#相抗衡。然而,讲述PHP高级特性的资料一直缺乏,大大影响了PHP语言的深入应用。 本书填补了这一空白。它专门针对有一定经验的PHP程序员,详细讲解了对他们最为重要的主题
455
"use strict";
var x = 1;
delete x; // SyntaxError
function f() {}
delete f; // SyntaxError
严格模式禁止函数定义中出现重复的参数名,这有助于避免歧义。
"use strict";
function dupParam(a, a) { // SyntaxError
return a;
}
在非严格模式下,函数中的 this 默认指向全局对象(浏览器中是 window)。严格模式下,this 在普通函数调用中为 undefined。
function f() {
"use strict";
console.log(this); // 输出 undefined,而非 window
}
f();
以 0 开头的数字被视为八进制,在严格模式下被禁用。
"use strict"; var octal = 010; // SyntaxError
在严格模式中,eval 不会污染当前作用域,也不能通过 eval 声明变量影响外部。
"use strict";
eval("var x = 10;");
console.log(x); // ReferenceError: x 未定义
虽然现代开发多依赖构建工具和 ESLint 等工具进行代码检查,但严格模式仍是语言层面的重要防护机制。
严格模式不是万能的,使用时需注意以下几点:
基本上就这些。严格模式是一个简单却强大的工具,合理使用能显著减少低级错误,让 JavaScript 更像一门严谨的语言。即便现在很多项目用 TypeScript,理解严格模式仍有助于深入掌握 JS 底层机制。
以上就是深入理解JavaScript_严格模式特性的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号