1. 程式人生 > >JavaScript嚴格模式(use strict)

JavaScript嚴格模式(use strict)

說明

對於小白們來說(也包括我)也可能都知道JavaScript的變數可以不用宣告就可以直接使用,但是在(ECMAScript5)中新增了嚴格模式,即JavaScript嚴格模式(strict
mode)即在嚴格的條件下執行。

支援嚴格模式的瀏覽器:Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。

為什麼使用嚴格模式

除了正常執行模式,ECMAscript 5添加了第二種執行模式:”嚴格模式”(strict mode)。顧名思義,這種模式使得Javascript在更嚴格的條件下執行。設立”嚴格模式”的目的,主要有以下幾個:

  • 消除程式碼執行的一些不安全之處,保證程式碼執行的安全;
  • 提高編譯器效率,增加執行速度;
  • 為未來新版本的Javascript做好鋪墊。
  • 消除javascript語法的一些不合理/不嚴謹指出,減少一些怪異行為;

“嚴格模式”體現了Javascript更合理、更安全、更嚴謹的發展方向,包括IE 10在內的主流瀏覽器,都已經支援它,許多大專案已經開始全面擁抱它。
另一方面,同樣的程式碼,在”嚴格模式”中,可能會有不一樣的執行結果;一些在”正常模式”下可以執行的語句,在”嚴格模式”下將不能執行。掌握這些內容,有助於更細緻深入地理解Javascript,讓你變成一個更好的程式設計師。

使用“use strict“指令

use strict簡介

“use strict “指令在JavaScript 1。9。5(ECMAScript5)中新增。
它不是一條語句,但是是一個字面量表達式,在JavaScript舊版本中會被忽略。 “use strict“的木的是制定程式碼在嚴格條件下執行。
嚴格模式下你不能使用未宣告的變數。

使用方式

“嚴格模式”有兩種呼叫方法,適用於不同的場合。
1。針對整個指令碼檔案

將”use strict”放在指令碼檔案的第一行,則整個指令碼都將以”嚴格模式”執行。如果這行語句不在第一行,則無效,整個指令碼以”正常模式”執行。如果不同模式的程式碼檔案合併成一個檔案,這一點需要特別注意。(嚴格地說,只要前面不是產生實際執行結果的語句,”use strict”可以不在第一行,比如直接跟在一個空的分號後面。)


eg:

  <script>
    "use strict";
    console.log("這是嚴格模式。");
  </script>
  <script>
    console.log("這是正常模式。");kly, it's almost 2 years ago now. I can admit it now - I run it on my school's network that has about 50 computers.
  </script>

上面的程式碼表示,一個網頁中依次有兩段Javascript程式碼。前一個script標籤是嚴格模式,後一個不是。

2.針對單個函式

將”use strict”放在函式體的第一行,則整個函式以”嚴格模式”執行。

       function strict(){
        "use strict";
        return "這是嚴格模式。";
      }
      function notStrict() {
        return "這是正常模式。";
      }

參考第三方連結