嚴格模式:
不允許使用with
1 所有變數必須宣告,賦值給未宣告的變數報錯,而不是隱式建立全域性變數。
2 eval中的程式碼不能建立eval所在作用域下的變數、函式。而是為eval單獨建立一個作用域,並在eval返回時丟棄。
3 函式中得特殊物件arguments是靜態副本,而不像非嚴格模式那樣,修改arguments或修改引數變數會相互影響。
4 刪除configurable=false的屬性時報錯,而不是忽略
5 禁止八進位制字面量,如010(八進位制的8)
6 evel,arguments變為關鍵字,不可作為變數名、函式名
7 一般函式呼叫時(不是物件的方法呼叫,也不使用apply/call/bind等修改this)this指向null,而不是全域性物件。若使用apply/call,當傳入null或undefined時,this將指向null或undefined,而不是全域性物件。
8 試圖修改不可寫屬性(writable=false),在不可擴充套件的物件上新增屬性時報TypeError,而不是忽略。
9 arguments.caller,arguments.callee被禁用