1. 程式人生 > >淺談js嚴格模式 use strict

淺談js嚴格模式 use strict

嚴格模式是一種特殊的執行模式,它修復了部分語言上的不足,提供更強的錯誤檢查,並增強安全性
"use strict":
1.不允許使用with語法
2.所有變數必須宣告,不然賦值給未宣告的變數會報錯,而不是隱式宣告全域性變數
3.通過eval方法建立的變數,將被分為獨立的作用於,外部程式碼不能訪問
4.函式中的特殊物件arguments將為靜態副本,不能與函式引數相互影響,無法修改引數
5.若使用call\apply傳入null或undefined修改this時,this指向null或undefined,而不是window
6.禁止八進位制字面量,如console.log(0123)等
7.eval\arguments等變為關鍵字,不能被使用作為變數名
8.一般函式(除物件呼叫的函式,或被bind\apply\call等修改過this的函式)呼叫時this指向null,而不是指向window
9.試圖刪除物件屬性描述器configurable=false的屬性時報錯,而不是返回false或忽略
10.試圖修改不可寫屬性(writable=false)時,報錯而不是返回false或忽略。
11.arguments.caller\arguments.callee被禁用。