溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在javascript中使用嚴格模式的方法

發(fā)布時間:2020-08-29 14:30:45 來源:億速云 閱讀:390 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關在javascript中使用嚴格模式的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

嚴格模式是什么意思?有什么用?

嚴格模式是ECMAScript 5中的一項新功能,它允許我們將程序或函數置于“嚴格”操作上下文中。這種嚴格的上下文可以防止某些操作被采取并引發(fā)更多異常。

我們需要聲明“use strict”; 指示瀏覽器使用嚴格模式,這是一種簡化且更安全的JavaScript功能集。

使用嚴格模式的好處:對普通的JavaScript語義進行了一些改變。

1、嚴格模式通過將其更改為拋出錯誤來消除一些JavaScript無提示錯誤。

2、嚴格模式修復了使JavaScript引擎難以執(zhí)行優(yōu)化的錯誤:嚴格模式代碼有時可以比非嚴格模式的相同代碼運行得更快。

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中,錯誤輸入變量名稱會創(chuàng)建一個新的全局變量。在嚴格模式下,這將引發(fā)錯誤,從而無法意外創(chuàng)建全局變量

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()在調用它的范圍內創(chuàng)建變量

"use strict";
eval(“var x = 2”);
alert(x); //這會導致錯誤

感謝各位的閱讀!關于在javascript中使用嚴格模式的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI