📅  最后修改于: 2023-12-03 15:01:47.632000             🧑  作者: Mango
JavaScript严格模式是一种在当前作用域下启用更加严格解析和错误处理的JavaScript模式。它与普通模式有许多不同之处,包括禁用一些不安全或不确定的行为,并且在某些情况下可以使代码运行得更快。
要在JavaScript中启用严格模式,有两种方法:
'use strict';
(注意:必须在脚本的起始位置而不是函数内部添加)。'use strict';
var myVariable = 'hello';
function myFunction() {
'use strict';
var myVariable = 'hello';
}
使用严格模式将禁用或更改JavaScript中的一些行为。以下是一些主要变化:
在严格模式下,必须声明变量,否则会抛出ReferenceError
。
'use strict';
myVariable = 'hello'; // 报错: myVariable未被定义
在严格模式下,不能省略函数声明中的参数名称。
'use strict';
function myFunction(param) {
console.log(param);
}
myFunction(); // 报错:myFunction没得到预期的参数
在严格模式下,会禁止使用delete
运算符删除变量或函数。
'use strict';
var myVariable = 'hello';
delete myVariable; // 报错:不能删除变量
'use strict';
function myFunction() {
console.log('hello');
}
delete myFunction; // 报错:不能删除函数
在严格模式下,eval()
不会执行的代码修改当前语句块作用域之外的变量或声明函数。
'use strict';
var x = 1;
eval('x = 2');
console.log(x); // 1
在严格模式下,对象和函数参数中不能使用相同的名称,否则会抛出SyntaxError
错误。
'use strict';
var myObject = {
prop1: 1,
prop1: 2 // 报错:不能使用相同的属性名
};
'use strict';
function myFunction(param1, param1) {
console.log(param1);
}
myFunction(1, 2); // 报错:不能使用相同的参数名
JavaScript严格模式可以有效地帮助程序员避免许多错误,并且在某些情况下可以让代码运行得更快。如果要使用严格模式,请确保在适当的位置添加声明。