1. 程式人生 > >“use strict” 嚴格模式

“use strict” 嚴格模式

    ES5中引入了嚴格模式(strict mode),為JavaScript定義了一種新的解析與執行模型。嚴格模式下,ES3中的一些不確定的行為將得到處理,某些不安全的操作也會丟擲錯誤。
1、作用

    (1)消除了JS中一些不規範、不嚴謹的地方,減少一些怪異行為;

    (2)對於某些不安全的程式碼操作丟擲錯誤,提高安全性;

    (3)提高編譯器的效率,提高執行速度

2、限制

    (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)顯示報錯

3、缺點

    (1)某些正常模式下可以執行的語句,到了嚴格模式下可能無法執行

    (2)不夠靈活

4、使用    (1)針對整個指令碼檔案,在一段指令碼的最開始位置宣告 "use strict"

      (2) 針對某個函式,在一個函式體的第一行宣告"use strict"