嚴格模式中意外建立全域性變數被丟擲錯誤替代
靜默失敗的賦值操作 (給不可寫屬性賦值, 給唯讀屬性(getter-only)賦值賦值, 給不可擴充套件物件(non-extensible object)的新屬性賦值)
試圖刪除不可刪除的屬性時會丟擲異常(之前這種操作不會產生任何效果)
乙個物件內的所有屬性名在物件內必須唯一
嚴格模式下重名引數被認為是語法錯誤
嚴格模式禁止八進位制數字語法
嚴格模式簡化了**中變數名字對映到變數定義的方式
嚴格模式禁用 with
嚴格模式下的 eval 不在為上層範圍(surrounding scope,注:包圍eval**塊的範圍)引入新變數
嚴格模式禁止刪除宣告變數
讓eval和arguments變的簡單
名稱 eval 和 arguments 不能通過程式語法被繫結(be bound)或賦值
引數的值不會隨 arguments 物件的值的改變而變化
不再支援 arguments.callee
指定的this不再被封裝為物件,而且如果沒有指定this的話它值是undefined:
fun.caller和fun.arguments都是不可刪除的屬性而且在存值、取值時都會報錯
arguments不會再提供訪問與呼叫這個函式相關的變數的途徑
嚴格模式中一部分字元變成了保留的關鍵字。這些字元包括implements, inte***ce, let, package, private, protected, public, static和yield。
嚴格模式禁止了不在指令碼或者函式層面上的函式宣告
JavaScript嚴格模式與非嚴格模式之間的區別
嚴格模式 非嚴格模式 禁止使用with語句 允許使用with語句 所有變數要先宣告 使用未宣告的變數將隱式宣告為全域性變數 函式 非方法 中的this是undefinedthis是全域性物件 給唯讀屬性和不可擴充套件的物件建立新成員將丟擲型別錯誤異常 只是簡單的操作失敗 傳入eval 的 不能在定義...
MySQL 嚴格模式與非嚴格模式
檢視 mysql 是否是嚴格模式 select sql mode 如果顯示包含 strict trans tables 或 strict all tables,則代表 mysql 開啟了嚴格模式 反之,是非嚴格模式 非嚴格模式是乙個相對概念 對於 innodb 引擎來說,strict trans t...
mysql 嚴格模式 MySql 嚴格模式相關配置
mysql 嚴格模式 mysql的sql mode合理設定 sql mode是個很容易被忽視的變數,預設值是空值,在這種設定下是可以允許一些非法操作的,比如允許一些非法資料的插入。在生產環境必須將這個值設定為嚴格模式,所以開發 測試環境的資料庫也必須要設定,這樣在開發測試階段就可以發現問題.sql ...