嚴格模式(use strict)

2021-08-28 10:03:31 字數 536 閱讀 5275

es6自帶嚴格模式,也就是說在es5公升入es6的時候,第乙個要做的就是將一些非嚴格模式的**修改。

嚴格模式的優點:

處理一些不合理,不嚴謹,未宣告的**問題

規範化**,提高編譯器的速度,保證**執行的安全

消除**中一些不安全之處,保證**執行安全

為未來的新版本js做好鋪墊

注意:1、 在es5中,賦值給未宣告的變數,會預設為全域性變數,並且會掛鉤在頂層物件中,這是前端js設計最大的敗筆

2、全域性的this,不是指向頂層物件了,而是undefined,慢慢將全域性物件與頂層物件分開

3、訪問arguments是成本高,盡量的少訪問這個物件,而且arguments非陣列,有length等,禁止使用argument.callee (指向當前執行的函式)

4、 es5中存在全域性作用域,函式作用域,es6中增加了塊級作用域,嚴格模式下增加新的eval作用域

5、增加了保留關鍵字:protect、yield、static

6、不能使用字首0來表示八進位制數

7、arguments不能賦值

js嚴格模式「use strict」

js的嚴格模式會放棄js中的一些不正規的寫法,參考 使用宣告 use strict 字串可以啟動js嚴格模式的檢查,作用方式分為兩種。1 全域性開啟嚴格模式檢查 那麼這個 use strict 字串可以宣告到 這樣認為在整個標記內開啟嚴格模式。如果該 塊中呼叫了其它 塊中的 那麼存在另乙個 塊中的 ...

JavaScript嚴格模式與非嚴格模式之間的區別

嚴格模式 非嚴格模式 禁止使用with語句 允許使用with語句 所有變數要先宣告 使用未宣告的變數將隱式宣告為全域性變數 函式 非方法 中的this是undefinedthis是全域性物件 給唯讀屬性和不可擴充套件的物件建立新成員將丟擲型別錯誤異常 只是簡單的操作失敗 傳入eval 的 不能在定義...

MySQL 嚴格模式與非嚴格模式

檢視 mysql 是否是嚴格模式 select sql mode 如果顯示包含 strict trans tables 或 strict all tables,則代表 mysql 開啟了嚴格模式 反之,是非嚴格模式 非嚴格模式是乙個相對概念 對於 innodb 引擎來說,strict trans t...