ECMAScript 6 知識點梳理 1

2022-09-11 20:12:09 字數 1451 閱讀 4231

一. let 和 const 命令

1.es6 新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的**塊內有效。

2.var命令會發生」變數提公升「現象,即變數可以在宣告之前使用,值為undefinedlet命令改變了語法行為,它所宣告的變數一定要在宣告後使用,否則報錯。

3.只要塊級作用域內存在let命令,它所宣告的變數就「繫結」(binding)這個區域,不再受外部的影響。

es6 明確規定,如果區塊中存在letconst命令,這個區塊對這些命令宣告的變數,從一開始就形成了封閉作用域。凡是在宣告之前就使用這些變數,就會報錯。  

總之,在**塊內,使用let命令宣告變數之前,該變數都是不可用的。這在語法上,稱為「暫時性死區」(temporal dead zone,簡稱 tdz)。

4.暫時性死區的本質就是,只要一進入當前作用域,所要使用的變數就已經存在了,但是不可獲取,只有等到宣告變數的那一行**出現,才可以獲取和使用該變數。

5.let不允許在相同作用域內,重複宣告同乙個變數。

6.es5中,內層變數可能會覆蓋外層變數,用來技術的迴圈變數會洩露為全域性變數。對此,es6用let為js提供了塊級作用域。

7.es6 規定,允許在塊級作用域內宣告函式;函式宣告類似於var,即會提公升到全域性作用域或函式作用域的頭部;同時,函式宣告還會提公升到所在的塊級作用域的頭部。

8.考慮到環境導致的行為差異太大,應該避免在塊級作用域內宣告函式。如果確實需要,也應該寫成函式表示式,而不是函式宣告語句。

9.do表示式:在塊級作用域之前加上do,使它變為do表示式,然後就會返回內部最後執行的表示式的值。

10.const宣告乙個唯讀的常量。一旦宣告,常量的值就不能改變。

11.const的作用域與let命令相同:只在宣告所在的塊級作用域內有效,同樣存在暫時性死區,不可重複宣告。

12.對const宣告的常量(包含物件常量)進行賦值操作會報錯。

13.頂層物件,在瀏覽器環境指的是window物件,在 node 指的是global物件。

14.es6 一方面規定,var命令和function命令宣告的全域性變數,依舊是頂層物件的屬性;另一方面規定,let命令、const命令、class命令宣告的全域性變數,不屬於頂層物件的屬性。也就是說,從 es6 開始,全域性變數將逐步與頂層物件的屬性脫鉤。

ECMAScript 6 知識點梳理 2

二.變數的解構賦值 1.es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構 destructuring 2.解構賦值允許指定預設值,但如果乙個陣列成員不嚴格等於undefined,預設值是不會生效的。3.解構不僅可以用於陣列,還可以用於物件。4.物件的解構與陣列有乙個重要的...

EcmaScript 6 箭頭函式

es5 var total values.reduce function a,b 0 es6 var total values.reduce a,b a b,0 箭頭即乙個函式的簡化 es5 confetti btn click function event es6 confetti btn cli...

ECMAScript6掃盲筆記 一

ecma組織推出的ecmascript是乙個標準 協議 js是協議的實現。ecmascript簡稱ecma或es。目前使用最多的是es5.1,es6正式推出是在2015年。就醬 es6 es2015 相容性 es6 es2015 支援 ie10 chrome firefox 移動端 nodejs。和...