摘要:嚴格模式的限制不允許使用未聲明的變量報錯未定義報錯未定義不允許刪除變量或對象。返回,因為指向全局對象,就是返回,因為嚴格模式下,的值為,所以為。
嚴格模式優勢:
消除Javascript語法的一些不合理、不嚴謹之處,減少一些意外情況出現;
消除代碼運行的一些不安全之處,保證代碼運行的安全;
提高編譯器效率,增加運行速度;
注意,同樣的代碼,在"嚴格模式"中,可能會有不一樣的運行結果;一些在"正常模式"下可以運行的語句,在"嚴格模式"下將不能運行。
"use strict"; x = 3.14; // 報錯 (x 未定義) "use strict"; x = {p1:10, p2:20}; // 報錯 (x 未定義)不允許刪除變量或對象。
"use strict"; var x = 3.14; delete x; // 報錯不允許刪除函數。
"use strict"; function x(p1, p2) {}; delete x; // 報錯不允許變量重名:
"use strict"; function x(p1, p1) {}; // 報錯不允許使用八進制:
"use strict"; var x = 010; // 報錯不允許使用轉義字符:
"use strict"; var x =