在 JavaScript 中,提供了一種稱為“嚴格模式”的功能,該功能在 ECMAScript 5 (ES5) 中引入,可幫助開發人員避免常見的 JavaScript 陷阱。在本文中,我們將深入探討什麼是嚴格模式、如何啟用它以及它提供的好處。

原文出處:https://dev.to/accreditly/understanding-javascript-strict-mode-4e3j

什麼是嚴格模式?

嚴格模式是一種選擇受限的 JavaScript 變體的方式。在嚴格模式下,JavaScript 通過將它們更改為拋出錯誤來消除一些 JavaScript 靜默錯誤。它修復了使 JavaScript 引擎難以執行優化的錯誤,並禁止了一些可能在未來版本的 ECMAScript 中定義的語法。

啟用嚴格模式

要在 JavaScript 中啟用嚴格模式,您可以使用字串“use strict”。這可以針對整個腳本或在單個函數中完成。

對於整個腳本:

"use strict";
var v = "Hello, I'm in strict mode!";

對於單個函數:

function strictFunc() {
  "use strict";
  var v = "Hello, I'm in strict mode inside a function!";
}

"use strict" 指令只能在腳本或函數的開頭辨識。

使用嚴格模式的好處

嚴格模式以兩種方式提供幫助:

  1. 它捕捉常見的編碼錯誤和“不安全”的行為。

例如,變數必須用 varletconst 聲明。未聲明的變數將導致錯誤。

"use strict";
x = 3.14; // This will cause an error because x is not declared
  1. 它防止使用未來的 ECMAScript 保留字。例如:
"use strict";
var let = "Hello"; // This will cause an error because "let" is a reserved word in ES6
  1. 它簡化了 eval() 和參數。

在嚴格模式下,在 eval() 語句中聲明的變數不會在周圍範圍內建立變數。

"use strict";
eval("var x = 10;");
// This will cause an error because x is not defined outside the scope of eval()
console.log(x); 
  1. 對於不是方法或構造函數的函數,它將 this 限制為未定義。

在非嚴格模式下,this 將默認為全局物件,瀏覽器上下文中的window

"use strict";
function myFunction() {
  console.log(this); // Will output: undefined
}
myFunction();

使用嚴格模式可以幫助您捕獲否則會被靜默忽略的錯誤。它還有助於防止您使用可能有問題的語法和做出低效的編碼決策。嚴格模式可以使您的 JavaScript 程式碼更加健壯和可維護,最好的做法是使用“use strict”指令啟動您的腳本。


共有 0 則留言