什么是“严格模式”?它是如何使用的?

JavaScript 的“严格模式”(strict mode)是 ECMAScript 5 中新增的一种代码执行模式。它可以让 JavaScript 引擎在执行脚本时更加严格地遵循规范,减少一些常见的错误,提高代码质量和性能。

使用方法

要使用“严格模式”,只需要在代码文件或函数体的顶部添加 "use strict"; 即可。例如:

---- --------

-------- ------------ -
  -- ----------------
-

使用“严格模式”可以有助于增强代码的可维护性、可读性和安全性,并且可以消除某些不合理的语言特性。以下是一些关键的变化:

变量必须先声明

在“严格模式”下,必须先声明变量,才能使用它们。这意味着不能省略 varletconst 关键字,否则会抛出一个异常。例如:

---- --------

----- - ------ ------- -- ------- ----- -----

禁止删除变量和函数

在“严格模式”下,无法删除函数或变量。如果尝试删除一个变量或函数,则会抛出一个异常。例如:

---- --------

--- ----- - ----
------ ------ -- -----------

禁止修改只读属性

在“严格模式”下,无法修改只读属性。如果尝试修改一个只读属性,则会抛出一个异常。例如:

---- --------

--- --- - ---
-------------------------- --------- - ------ ---- --------- ----- ---

---------- - ---- -- -------------

禁止使用未定义的变量

在“严格模式”下,无法使用未声明的变量。如果尝试使用一个未声明的变量,则会抛出一个异常。例如:

---- --------

----- - ------ ------- -- ------- ----- -----

函数必须具有独立的作用域

在“严格模式”下,每个函数都必须具有独立的作用域。这意味着不能在函数内部访问外部函数的变量,除非将这些变量作为参数传递进来。例如:

---- --------

-------- ------- -
  --- - - ---
  
  -------- ------- -
    --- - - ---
    --------------- -- ---- -
  -
  
  --------
  --------------- -- --------- -
-

eval 和 with 关键字被禁止使用

在“严格模式”下,不能使用 evalwith 关键字。这是因为它们会导致一些安全和性能问题。例如:

---- --------

--------- - - ------- -- --------- ----

---- ------ -
  --------------------- -- --------- ----
-

指南

使用“严格模式”可以提高 JavaScript 代码的质量和性能,并减少一些常见的错误。以下是一些指导意义:

  • 在新项目中建议启用“严格模式”;
  • 在老项目中,慢慢引入“严格模式”,先解决一些低-hanging fruit 的问题;
  • 不要省略 varletconst 关键字;
  • 避免使用 evalwith 关键

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/10149