嚴格模式是es5提出的更嚴格的js語法標準,修正了一些不合理的語法,增強了錯誤檢查。
**使用嚴格模式的方法:
在函式內部開頭'use strict'; 函式將以嚴格模式執行。
在檔案開頭全域性作用域下'use strict'; 整個**將以嚴格模式執行。
嚴格模式相比之前有什麼主要區別:
1.不允許使用width
2.不加var宣告變數將報錯
3.arguments是靜態副本,不會改變引數(引用型別的引數除外,這與引用型別本身有關)
4.delete 引數將報錯
delete 不可配置的屬性將報錯(object.create方式建立的物件屬性)
修改不可寫的屬性將報錯(object.create方式建立的物件屬性)
5.物件的屬性名重複將報錯
6.許使用8進製數將報錯
7.eval,arguments變成了關鍵字
8.eval擁有獨立作用域
9.一般的函式呼叫this指向window的情況變為this指向null
11.arguments.caller和arguments.callee被禁用
Hive的嚴格模式和非嚴格模式
通過開啟嚴格模式,主要是為了禁止某些查詢 這些查詢可能造成意想不到的壞的結果 目前主要禁止3種型別的查詢 1 分割槽表查詢 在查詢乙個分割槽表時,必須在where語句後指定分割槽字段,否則不允許執行。因為在查詢分割槽表時,如果不指定分割槽查詢,會進行全表掃瞄。而分割槽表通常有非常大的資料量,全表掃瞄...
JavaScript嚴格模式與非嚴格模式之間的區別
嚴格模式 非嚴格模式 禁止使用with語句 允許使用with語句 所有變數要先宣告 使用未宣告的變數將隱式宣告為全域性變數 函式 非方法 中的this是undefinedthis是全域性物件 給唯讀屬性和不可擴充套件的物件建立新成員將丟擲型別錯誤異常 只是簡單的操作失敗 傳入eval 的 不能在定義...
MySQL 嚴格模式與非嚴格模式
檢視 mysql 是否是嚴格模式 select sql mode 如果顯示包含 strict trans tables 或 strict all tables,則代表 mysql 開啟了嚴格模式 反之,是非嚴格模式 非嚴格模式是乙個相對概念 對於 innodb 引擎來說,strict trans t...