[JavaScript] Strict 模式

ES5 為該語言引進了一種「嚴格模式(strict mode)」,它會以更嚴謹的方式來規範某些行為。一般來說,這些限制會讓程式碼遵循一組較為安全且適當的指導原則。

此外,使用 strict 模式也能讓你的程式碼更容易被最佳化。所以從現在開始,你應該在你所有的程式中使用它。

可以讓個別的函式或是整個檔案選擇使用 strict 模式,這要看你將 strict 模式的宣告放在程式中的什麼地方。

以下程式範例,是只有在 foo() 函式裡面中使用 strict 模式(也包含以下的 bar() 函式):

function foo() {
  "use strict";

  // 這裡的程式碼使用 strict 模式

  function bar() {
    // 這裡的程式碼使用 strict 模式
  }
}

// 這裡的程式碼不使用 strict 模式

以下的程式範例,是整個檔案都使用 strict 模式:

"use strict";

function foo() {
  // 這裡的程式碼使用 strict 模式

  function bar() {
    // 這裡的程式碼使用 strict 模式
  }
}

// 這裡的程式碼使用 strict 模式

使用 strict 模式時,一個主要的關鍵差異(優點),是它不允許省略 var 宣告,例如以下程式碼:

function foo(){
  "use strict"; // 開啟 strict 模式
  a = 1; // 少了 var 宣告,會產生 ReferenceError 的錯誤
}
foo();

如果你在程式碼中開啟 strict 模式,而你得到錯誤,或是程式碼的行為開始變得怪怪的,或許你會想要避免使用 strict 模式,但其實並不是個好主意。

如果 strict 模式會使你的程式發生問題,幾乎可以確定這代表是你的程式中有東西需要修正了。

使用 strict 模式不僅會讓你的程式碼變得更安全,也不只會讓你的程式碼更容易最佳化,所以請開始使用 “use strict” 模式吧!

您可在此處留言

avatar

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  Subscribe  
Notify of