在 JavaScript 中 use strict
本教程將討論 JavaScript 中的 use strict
特性。在這裡,我們將通過不同的示例瞭解如何在 JavaScript 程式碼語句中建立和執行 use strict
關鍵字。
JavaScript 中的 use strict
在 JavaScript 版本 ECMAScript 5 中,嚴格模式是引入的一項新功能,它將幫助我們在嚴格的操作上下文中執行一組程式及其功能。我們 use strict
的上下文來限制執行各種操作並丟擲更多異常。
我們通過語句 use strict
指示瀏覽器 use strict
模式。它是 JavaScript 的最小且更安全的功能集。
在 JavaScript 中實現 use strict
請記住,我們不能對用大括號括起來的塊語句 use strict 模式。下面提到了兩種 use strict 模式的方法:
- 我們可以在整個指令碼的全域性範圍內使用它。
- 我們可以在個別功能中使用它。
在 JavaScript 中為整個指令碼實現 use strict
在任何其他語句之前,我們將確切的語句 use strict
用於為整個指令碼呼叫嚴格模式。
語法:
// strict mode syntax for Whole-script
'use strict';
let a = 'script for strict mode!';
為 JavaScript 中的單個函式實現 use strict
在函式體中,在任何其他語句之前,我們將確切的語句 use strict
用於呼叫函式的嚴格模式。
語法:
function strictFunction() {
// strict mode syntax for Function
'use strict';
function nestedFunction() {
return 'Javascript on DelftStack';
}
return 'strict mode functions! ' + nestedFunction();
}
function notStrictFunction() {
return 'non strict function';
}
嚴格模式示例
眾所周知,錯誤輸入變數名會在普通 JavaScript 中建立一個新的全域性變數。在嚴格模式下,它會丟擲一個錯誤。
例子:
<!DOCTYPE html>
<html>
<body>
<p>function will cause errors while using `use strict` in that function.</p>
<p>To see the error reprt just activate debugging in your browser by pressing (F12).</p>
<script>
a = 10; // This will not cause an error.
myFunction();
function myFunction() {
"use strict";
b = 10; // This will cause an error (b is not defined).
}
</script>
</body>
</html>
我們在這個 HTML 頁面原始碼中定義了 <script>
標記以使用 JavaScript 程式碼語句。在 <script>
標籤內,我們簡單地用數值 10 初始化未定義變數 a
並呼叫 myFunction()
。
之後,我們使用 use strict
關鍵字建立了 myFunction()
的宣告。我們還用數值 10 初始化了未定義的變數 b
,以在 use strict
模式下測試執行。
你可以使用 .html 副檔名儲存給定的 HTML 示例,並在任何瀏覽器中開啟它以檢查輸出。你需要啟用瀏覽器的除錯模式,只需按 F12 即可檢視錯誤報告。
輸出:
the function will cause errors while using `use strict`.
To see the error report, activate debugging in your browser by pressing (F12).
在 JavaScript 中實現 use strict
的優勢
在簡單的 JavaScript 語義中,嚴格模式進行了各種更改。我們可以通過 use strict 模式將它們更改為丟擲錯誤來消除 JavaScript 的一些靜默錯誤。
- 為了執行優化,我們可以修復使 JavaScript 引擎難以處理的錯誤。
- 嚴格模式的程式碼有時可以比普通程式碼執行得更快,這是嚴格模式所沒有的。
- 在 ECMAScript 的未來版本中,嚴格模式會阻止某些可能被定義的語法。
- 嚴格模式可防止任何不安全的操作,例如嘗試訪問全域性變數或物件。
- 嚴格模式禁用令人困惑的功能或考慮不周的功能。
- 為了更有效地編寫安全的 JavaScript,我們使用嚴格模式。