es6 的模組自動採用嚴格模式,不管你有沒有在模組頭部加上"use strict";
。
嚴格模式主要有以下限制。
1. 塊級函式
"use strict";
if (true) // 語法錯誤
}
es5中嚴格模式下禁止宣告塊級函式,而在es6的嚴格模式中可以宣告塊級函式,並可以在塊級作用
'use strict'
var b= true;
if(b)
test(); //可以正常執行
} console.log(typeof test) //塊級作用域外無法訪問
2. 箭頭函式
箭頭函式是es6中新增的一種特殊函式,不管是否處於嚴格模式下,箭頭函式的引數都不能有同名的。而es5中,只有在嚴格模式下函式的引數才不能有同名
3.字面量物件重複屬性問題
es5的嚴格模式中,如果物件屬性重名則會報錯,es6則不管是不是嚴格模式,如果有同名屬性,則後面的屬性覆蓋前面的
4.模組模式
採用es6的模組化開發時,**自動執行在嚴格模式下且沒有任何辦法跳出嚴格模式
5.類模式
在es6中不管是類宣告還是類表示式,其內部使用的都是嚴格模式。
ES6中嚴格模式
從es5開始,函式內部就可以設定為嚴格模式。function x,y es6將其做了一些規定,只要函式引數使用了預設值,解構賦值,擴充套件運算子,那麼函式內部就不能顯式設定嚴格模式了,否則會報錯。function dosomething a,b a const dosomething functio...
ES6系列 ES6簡介
2015年6月17日,ecmascript的第六個版本正式發布,該版本正式名稱為ecmascript 2015,但通常被稱為ecmascript 6或者es6。瀏覽器對es6的支援情況 es6主要應用於node.js,如果想用在瀏覽器中,就需要使用轉碼器 將es6 轉成es5 這意味著,可以用es6...
ES5 嚴格模式
在es5中可以開啟一種嚴格模式的 形式,開啟方式是 將全域性或者函式的第一條語句定義為 use strict 如果瀏覽器不支援,會將其解析為一條普通語句,沒有任何的 開啟全域性模式後會有一下的一些約束 1.第一次定義變數的時候必須使用var。如 test heihei alert test 該語句在...