首頁 > web前端 > js教程 > 主體

javascript中'use strict'嚴格模式詳解

小云云
發布: 2018-03-14 18:06:07
原創
1402 人瀏覽過


除了正常運作模式,ECMAscript 5增加了第二種運作模式:「嚴格模式」(strict mode)。顧名思義,這種模式使得Javascript在更嚴格的條件下運作。

為什麼用嚴格模式

  • 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為;

  • 消除程式碼運行的一些不安全之處,保證程式碼運行的安全性;

  • 提高編譯器效率,增加運行速度;

#為未來新版的Javascript做好鋪墊。

「嚴格模式」體現了Javascript更合理、更安全、更嚴謹的發展方向,包括IE 10在內的主流瀏覽器,都已經支援它,許多大專案已經開始全面擁抱它。

另一方面,同樣的程式碼,在”嚴格模式”中,可能會有不一樣的運行結果;一些在”正常模式”下可以運行的語句,在”嚴格模式下將不能運行。掌握這些內容,有助於更細緻、深入理解Javascript,讓你變成更好的程式設計師。

進入標誌

"use strict";
登入後複製

如何呼叫

針對單一腳本

 <script>    &quot;use strict&quot;;
    console.log("这是严格模式。");
  </script>
登入後複製

針對單一函數

function strict(){    "use strict";
    return "这是严格模式。";
  }
  function notStrict() {    return "这是正常模式。";
  }
登入後複製

語法與行為改變

嚴格模式對Javascript的語法和行為,都做了一些改變。 全域變數明確宣告

在正常模式中,如果一個變數沒有宣告就賦值,預設​​是全域變數。嚴格模式禁止這種用法,全域變數必須明確宣告。

因此,嚴格模式下,變數都必須先用var指令宣告,然後再使用。

禁止this關鍵字指向全域物件

因此,使用建構函式時,如果忘了加new,this不再指向全域對象,而是報錯。

function f(){    "use strict";
    this.a = 1;
  };
  f();// 报错,this未定义
登入後複製
###禁止刪除變數######嚴格模式下無法刪除變數。只有configurable設定為true的物件屬性,才能被刪除。 ###
"use strict";
  var x;
  delete x; // 语法错误  var o = Object.create(null, {'x': {
      value: 1,
      configurable: true  }});
  delete o.x; // 删除成功
登入後複製
###物件不能有重名的屬性######正常模式下,如果物件有多個重名屬性,最後賦值的那個屬性會覆寫前面的值。嚴格模式下,這屬於文法錯誤。 ###
"use strict";
  var o = {
    p: 1,
    p: 2  }; // 语法错误
登入後複製
###函數不能有重名的參數######正常模式下,如果函數有多個重名的參數,可以用arguments[i]讀取。嚴格模式下,這屬於文法錯誤。 ###
 "use strict";
  function f(a, a, b) { // 语法错误    return ;
  }
登入後複製
###相關推薦:############JS嚴格模式實例講解############詳細介紹JavaScript中的嚴格模式#### ########JavaScript嚴格模式詳解_javascript技巧#######

以上是javascript中'use strict'嚴格模式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板