關於javascript嚴格模式下七種禁止使用的寫法


分享至javascript語言精髓與編程實踐

開啟嚴格模式(”use strict"):

在全局代碼的開始處加入

在eval代碼的開始處加入

在函數聲明代碼處加入

在new Function() 所傳入的body參數塊開始處加入

1:在對象中聲明相同的屬性名

   例如: var obj ={

                   'name': 1,

                   'name': 2

           };

會拋出SyntaxError: Duplicate data property in object literal not allowed in strict mode.

2:在函數聲明中相同的參數名

例如: "use strict";

     function fix(a,b,a) {     

         return a+b;     

     }

會拋出 SyntaxError: Strict mode function may not have duplicate parameter names .

3:不能用前導0聲明8進制直接量

例如: var a = 012;

會拋出 SyntaxError: Octal literals are not allowed in strict mode.

4: 不能重新聲明、刪除或重寫eval和arguments這兩個標示符

var eval = ......;

會拋出  SyntaxError: Assignment to eval or arguments is not allowed in strict mode

5:用delete刪除顯示聲明的標識符、名稱和具名函數

    function temp() {

       'use strict';

        var test = 1;

        delete test;

    }

會拋出 SyntaxError: Delete of an unqualified identifier in strict mode.

6.代碼中使用擴展的保留字,例如 interface,let,yield,package,private等

  會拋出SyntaxError: Unexpected strict mode reserved word

7.嚴格模式下是禁止使用with的

會拋出 SyntaxError: Strict mode code may not include a with statement

 

 

好了以上都是摘自書上,其實我並不使用嚴格模式的,但是這些知識還是要儲備一些。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM