📜  javascript中的严格模式(1)

📅  最后修改于: 2023-12-03 15:01:47.632000             🧑  作者: Mango

JavaScript中的严格模式

简介

JavaScript严格模式是一种在当前作用域下启用更加严格解析和错误处理的JavaScript模式。它与普通模式有许多不同之处,包括禁用一些不安全或不确定的行为,并且在某些情况下可以使代码运行得更快。

使用严格模式

要在JavaScript中启用严格模式,有两种方法:

  1. 在脚本顶部添加'use strict'; (注意:必须在脚本的起始位置而不是函数内部添加)。
'use strict';
var myVariable = 'hello';
  1. 为使用严格模式的函数添加同样的声明。
function myFunction() {
  'use strict';
  var myVariable = 'hello';
}
严格模式的功能

使用严格模式将禁用或更改JavaScript中的一些行为。以下是一些主要变化:

1. 变量必须声明

在严格模式下,必须声明变量,否则会抛出ReferenceError

'use strict';
myVariable = 'hello'; // 报错: myVariable未被定义
2. 必须声明函数形参

在严格模式下,不能省略函数声明中的参数名称。

'use strict';
function myFunction(param) {
  console.log(param);
}
myFunction(); // 报错:myFunction没得到预期的参数
3. 不能删除变量或函数

在严格模式下,会禁止使用delete运算符删除变量或函数。

'use strict';
var myVariable = 'hello';
delete myVariable; // 报错:不能删除变量
'use strict';
function myFunction() {
  console.log('hello');
}
delete myFunction; // 报错:不能删除函数
4. eval不会修改外部变量

在严格模式下,eval()不会执行的代码修改当前语句块作用域之外的变量或声明函数。

'use strict';
var x = 1;
eval('x = 2');
console.log(x); // 1
5.不能使用相同的对象属性或参数名称

在严格模式下,对象和函数参数中不能使用相同的名称,否则会抛出SyntaxError错误。

'use strict';
var myObject = {
  prop1: 1,
  prop1: 2 // 报错:不能使用相同的属性名
};
'use strict';
function myFunction(param1, param1) {
  console.log(param1);
}
myFunction(1, 2); // 报错:不能使用相同的参数名
总结

JavaScript严格模式可以有效地帮助程序员避免许多错误,并且在某些情况下可以让代码运行得更快。如果要使用严格模式,请确保在适当的位置添加声明。