首頁 > web前端 > js教程 > 主體

在javascript中如何使用嚴格模式?使用範例

青灯夜游
發布: 2018-11-20 09:29:17
原創
2902 人瀏覽過

javascript如何使用嚴格模式?本篇文章就給大家簡單介紹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教學

以上是在javascript中如何使用嚴格模式?使用範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!