JavaScriptstrict 模式分析

來源:互聯網
上載者:User

標籤:rip   bsp   mil   size   未來   模式   使用   設定   mode   

簡要:strict 模式(strict mode)是JavaScript在ES5裡面新增的編碼模式,只要一行代碼就可開啟,可謂非常簡單了,而它對於我們的編碼來說到底有什麼不同呢?

 

一、strict 模式的目的?

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

  2、消除代碼啟動並執行一些不安全之處,保證代碼啟動並執行安全;

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

  4、為未來新版本的Javascript做好鋪墊。

 

二、使用方法?

  只要在合適的位置插入這行代碼就可以了。

  "use strict";

  1、針對真箇指令檔

    <script>

      "use strict"; //插入到這個位置,對真箇js檔案有效

      console.log(somecode);

    </script>

  2、針對獨立的函數

    function a(){

      "use strict"; //插入到這個位置,這對這個函數有效

      console.log(somecode)

    }

三、strict 模式有哪些文法變化?

  1、全域變數必須顯式聲明

    "use strict"; 

    a = 1; //這時報錯,因為strict 模式下,不能預設聲明為全域變數了,必須加 var等聲明。

  2、靜態繫結,javascript的動態綁定收到了一些限制,如with語句不再允許使用(with語句是在執行時候runtime才綁定屬性、方法到哪個對象)

    

  3、增加eval()範圍

    普通模式下:2種,全域範圍、函數範圍;此時的eval的範圍取決於它處於全域範圍下還是函數範圍下;

    strict 模式下:3種,全域範圍、函數範圍、eval範圍;

  4、this不再指向全域對象

    意味著:當使用建構函式的時候,當沒有用new關鍵字,此時的this將不再預設指向全域對面window,而會報錯;

    

  5、禁止在函數內部遍曆調用棧

  6、strict 模式下無法刪除變數。只有configurable設定為true的對象屬性,才能被刪除。

  7、正常模式下,對一個對象的唯讀屬性進行賦值,不會報錯,只會默默地失敗。strict 模式下,將報錯。

  。。。後續更新中

 

  更多:請參考阮一峰老師的部落格http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

 

JavaScriptstrict 模式分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.