ES5 嚴格模式

2022-06-10 14:57:09 字數 702 閱讀 4960

在es5中可以開啟一種嚴格模式的**形式,開啟方式是:將全域性或者函式的第一條語句定義為:'use strict';。 如果瀏覽器不支援,會將其解析為一條普通語句,沒有任何的***。

開啟全域性模式後會有一下的一些約束:

1.第一次定義變數的時候必須使用var。如:test = 'heihei';alert(test);  該語句在沒有開啟嚴格模式的環境下不會報錯,但是開啟後會報錯必須使用:var test = 'heihei';

2.禁止定義的函式中的this指向window(即全域性)。如:

function person(name)

person('test');

該語句在未開啟嚴格模式的環境下不會報錯。但是開啟嚴格模式後,函式中的this就指向了window會報錯,可以改為下列的方式:

function person(name)

var p = new person('test');

3.eval();函式中的語句有自己的作用域,eval()函式會將裡面的字串當作語句來執行。如:

var test = 'haha';

eval('var test = "heihei";alert(test);');

alert(test);

該語句在未開啟嚴格模式的環境下會輸出:haha,和haha,也就是說在eval()函式中改變了test變數的值。如果加上嚴格模式則會輸出:heihei和 haha

es5嚴格模式

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

ES5 嚴格模式

歷史 es5 2009年發布 es6 es2015 es7 es2016 在早期規範確立之前js在瀏覽器中執行時,每個瀏覽器都有定義一套自己的套路,這個被稱為混炸模式,或者怪異模式 隨著ecma js 等確立新的規範 故名思意 這種模式使用js在更嚴格的語法條件下執行,為 的執行保駕護航 1 在全域...

ES5之嚴格模式

除了正常執行模式 混雜模式 es5新增了第二種執行模式 嚴格模式 strict mode 顧名思義這種模式使得js在更嚴格的語法條件下執行。目的 作用 消除js語法的一些不合理,不嚴謹之處,減少一些怪異行為,消除 執行的一些不安全之處,為 的安全執行保駕護航,為未來新版本的js做好鋪墊 使用 在全域...