ES5嚴格模式下有哪些新規定

2021-09-27 13:49:11 字數 915 閱讀 3357

如何啟用嚴格模式:在js執行頂端加上 「use strict」 注意是字串

js 如果給未宣告的變數會自動把這個變數載入到全域性作用域下,這樣導致的後果 造成全域性汙染 在嚴格模式下會報錯禁止給未宣告的變數強行賦值,報錯: *** is not defined。——防止全域性汙染,也減少了拼寫錯誤導致的誤會

什麼叫靜默失敗 就是有錯誤也不會報錯,但是在嚴格模式下會報錯便於我們快速發現問題

一般來說呼叫乙個函式 如果函式體內出現 this.a **執行到這裡的時候this的指向問題 this 指的是window 例如:

<

!doctype html>

"en"

>

"utf-8"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

"x-ua-compatible" content=

"ie=edge"

>

document<

/title>

<

/head>

(function()

)()// **首先匿名函式自呼叫執行函式裡面的** 執行到this.a 因為在當前的臨時作用域物件沒有a 因為this.a 是相當於在全域性新增了乙個a d但是在嚴格模式下會報錯**

<

/script>

<

/body>

<

/html>

function

f(n)

else

// arguments.callee 代表的是函式名 一般用在遞迴中 為什麼禁用 因為遞迴演算法不好 重複量太大

ES5新特性 嚴格模式

目的 消除語法不合理 不嚴謹 消除執行不安全 提高速度 新版本模組化做鋪墊 語法 use strict 是乙個指令,指示直譯器用更嚴格的方式檢查 如何呼叫 use strict a 3 console.log a 報錯 b 4 console.log b 4 script 針對單個函式 放在函式體的...

ES5 嚴格模式

在es5中可以開啟一種嚴格模式的 形式,開啟方式是 將全域性或者函式的第一條語句定義為 use strict 如果瀏覽器不支援,會將其解析為一條普通語句,沒有任何的 開啟全域性模式後會有一下的一些約束 1.第一次定義變數的時候必須使用var。如 test heihei alert test 該語句在...

es5嚴格模式

es3和es5產生衝突的部分使用es5的方法,否則使用es3 use strict 變數賦值前必須宣告,var a b 2 b沒有定義 區域性this必須被賦值 賦給什麼就是什麼 拒絕重複屬性和引數 arguments.calle 不能被使用 function.caller with 改變作用域鏈 ...