“use strict” 嚴格模式
阿新 • • 發佈:2019-01-29
ES5中引入了嚴格模式(strict mode),為JavaScript定義了一種新的解析與執行模型。嚴格模式下,ES3中的一些不確定的行為將得到處理,某些不安全的操作也會丟擲錯誤。
1、作用
(1)消除了JS中一些不規範、不嚴謹的地方,減少一些怪異行為;
(2)對於某些不安全的程式碼操作丟擲錯誤,提高安全性;
(3)提高編譯器的效率,提高執行速度
(1)變數必須先聲明後使用,不能delete一個全域性變數;
(2)函式的引數不可同名(非嚴格模式下只能訪問同名引數中的第二個),物件屬性不可同名(非嚴格模式下後面的會自動覆蓋前面的)
嚴格模式下不會改變形參
function show(value){
'use strict'
value='abc';
alert(value);
alert(arguments[0]);
}
show('hi');//abc,hi
(3)禁止八進位制的使用
(4)不能使用with語句
(5)不能刪除不可刪除的屬性
(6)不能使用arguments.callee方法
(7)增加了保留字:protected static interface等
(8)建立了eval()作用域
(9)顯示報錯
(1)某些正常模式下可以執行的語句,到了嚴格模式下可能無法執行
(2)不夠靈活
(2) 針對某個函式,在一個函式體的第一行宣告"use strict"