您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關在javascript中使用嚴格模式的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
嚴格模式是什么意思?有什么用?
嚴格模式是ECMAScript 5中的一項新功能,它允許我們將程序或函數置于“嚴格”操作上下文中。這種嚴格的上下文可以防止某些操作被采取并引發更多異常。
我們需要聲明“use strict”; 指示瀏覽器使用嚴格模式,這是一種簡化且更安全的JavaScript功能集。
使用嚴格模式的好處:對普通的JavaScript語義進行了一些改變。
1、嚴格模式通過將其更改為拋出錯誤來消除一些JavaScript無提示錯誤。
2、嚴格模式修復了使JavaScript引擎難以執行優化的錯誤:嚴格模式代碼有時可以比非嚴格模式的相同代碼運行得更快。
3、嚴格模式禁止在ECMAScript的未來版本中定義某些語法。
4、當采取相對“不安全”的操作(例如獲取對全局對象的訪問權限)時,它會阻止或拋出錯誤。
5、它會禁用令人困惑或經過深思熟慮的功能。
6、嚴格模式可以更輕松地編寫“安全”JavaScript代碼。
如何使用嚴格模式?
嚴格模式可以用兩種方式來使用 :可以在整個腳本的全局范圍中使用,也可以應用于單個函數。
注:嚴格模式不適用于{}括號中的塊語句。
在整個腳本的全局范圍中使用
調用嚴格模式,請在任何其他陳述之前輸入確切的語句“use strict”; (或'use strict';)。
//全腳本嚴格模式語法 "use strict"; var v ="嚴格模式腳本!";
注意:此語法有一個流程:無法盲目連接非沖突腳本。考慮將嚴格模式腳本與非嚴格模式腳本連接起來:整個連接看起來很嚴格!反之亦然:非嚴格加嚴格,會看起來非嚴格。嚴格模式腳本相互連接很好,并且非嚴格模式腳本的連接很好。只連接嚴格和非嚴格的腳本是有問題的。因此,建議您逐個功能地啟用嚴格模式(至少在過渡期間)。
使用函數調用嚴格模式
要在函數中調用嚴格模式,同樣請在任何其他語句之前在函數體中將確切的語句設置為“use strict”; (或'use strict';)。
function strict(){ //功能級嚴格模式語法 "use strict"; function nested(){ return '在Javascript中'; } return "嚴格模式函數!"+ nested(); } function notStrict(){ return "非嚴格模式"; }
使用嚴格模式的示例:
1、在普通的JavaScript中,錯誤輸入變量名稱會創建一個新的全局變量。在嚴格模式下,這將引發錯誤,從而無法意外創建全局變量
2、使用嚴格模式,不允許在不聲明變量的情況下使用變量
//不允許使用變量而不聲明它: "use strict"; x = 3.14; //這會導致錯誤
3、對象也是變量。使用嚴格模式,不允許使用對象而不聲明它:
//不允許使用對象而不聲明它: "use strict" x = {p1:10,p2:20}; //這會導致錯誤
4、不允許刪除變量(或對象)和函數,也不允許刪除功能
"use strict"; //不允許刪除變量(或對象)和函數 var x = 3.14; delete x; //這會導致錯誤 //也不允許刪除功能 function x(p1,p2){}; delete x; //這會導致錯誤
5、不允許復制參數名稱
“嚴格使用”; 函數x(p1,p1){}; //這會導致錯誤
6、不允許使用八進制數字文字
"use strict"; var x = 010; //這會導致錯誤
7、不允許使用轉義字符
"use strict"; var x = \ 010; //這會導致錯誤
8、不允許寫入只讀屬性
"use strict"; var obj = {}; Object.defineProperty(obj,“x”,{ value:0,writable:false }); obj.x = 3.14; //這會導致錯誤
9、不允許寫入get-only屬性
"use strict"; var obj = { get x(){return 0} }; obj.x = 3.14; //這會導致錯誤
10、不允許刪除不可刪除的屬性
"use strict"; delete Object.prototype; //這會導致錯誤
11、字符串“eval”不能用作變量
"use strict"; var eval = 3.14; //這會導致錯誤
12、字符串“arguments”不能用作變量
"use strict"; var arguments = 3.14; //這會導致錯誤
13、不允許使用with語句
"use strict"; with(Math){ x = cos(2) }; //這會導致錯誤
14、出于安全原因,不允許eval()在調用它的范圍內創建變量
"use strict"; eval(“var x = 2”); alert(x); //這會導致錯誤
感謝各位的閱讀!關于在javascript中使用嚴格模式的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。