Js中嚴格模式和非嚴格模式的區別

2021-08-14 20:14:32 字數 663 閱讀 5181

'use strice'

;//整個js檔案都是嚴格模式下執行的

var n =1;

var foo =

function();

//...

var

n =1;

var foo =

function

()

嚴格模式下, delete運算子後跟隨非法識別符號(即delete 不存在的識別符號),會丟擲語法錯誤; 非嚴格模式下,會靜默失敗並返回false

嚴格模式中,物件直接量中定義同名屬性會丟擲語法錯誤; 非嚴格模式不會報錯

嚴格模式中,函式形參存在同名的,丟擲錯誤; 非嚴格模式不會

嚴格模式不允許八進位制整數直接量(如:023)

嚴格模式中,arguments物件是傳入函式內實參列表的靜態副本;非嚴格模式下,arguments物件裡的元素和對應的實參是指向同乙個值的引用

嚴格模式中 eval和arguments當做關鍵字,它們不能被賦值和用作變數宣告

嚴格模式會限制對呼叫棧的檢測能力,訪問arguments.callee.caller會丟擲異常

嚴格模式 變數必須先宣告,直接給變數賦值,不會隱式建立全域性變數,不能用with,

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...