我的ES6學習之路(一)

2022-08-05 07:30:23 字數 1220 閱讀 1863

強烈推薦  阮一峰寫的《ecmascript6入門》

let和const命令

let命令:

let用於宣告變數,用法和var相似,但是不完全相同,有以下幾點區別

① let命令只在當前作用域中有效;

② let不會發生『變數提公升』的現象,變數一定要宣告後在使用他,否則會報錯。

問題:es6支援es5 但是如果發生以下情況也會報錯

1

var demo = 13;

2if(true

)

原因:只要在塊級作用域內存在 let ,const 命令就會形成乙個『暫時性死區』 ,即使全域性中宣告了該變數也會報錯

連帶結果:typeof 不是很管用啦!

if(true

)

③ let 不允許在相同作用域內重複宣告

④ 塊級作用域:

es5:只存在全域性作用域和函式作用域

es6: 新增了塊級作用域,而且還允許其巢狀使用,也可以直接使用  

還允許在塊級作用域內宣告函式是不是方便的

⑤ 雖然let宣告的變數不會被提公升,但是函式的宣告還是會被提公升的!

const命令:

①新增的常量的宣告命令-------宣告後為唯讀屬性不允許改變

②其他特點和let一樣,不會提公升,會形成暫時性死區,

變數的『解構賦值』

解構賦值:es6允許按照一定的模式,從陣列和物件中提取值,然後對變數進行賦值。

let [a,b,c] = [1,2,3] //

如果是es5的話只能乙個個的宣告變數並賦值啦!

解構賦值的本質應該就是一種匹配模式,只要等號兩邊的模式相同就可以進行賦值啦!如果匹配不到 就會返回undefined給變數

let [a, b, ...c] = ["a"]

a

//"a"

b //

undefined

c //

返回空陣列是 『...』 的功勞哦

還有「不完全解構」    也就是值多於變數

let [a, [b], c] = [1,[2 , 3], 4]

a //

1b //

2 [2,3]沒有完全解構

c //

4

es6學習之路(3) 解構賦值

es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構 destructuring 本質上,這種寫法屬於 模式匹配 只要等號兩邊的模式相同,左邊的變數就會被賦予對應的值 1,陣列 let foo,bar baz 1,2 3 foo 1 foo 1 bar 2 baz 3 let...

ES6學習之路1 變數的宣告

它是variable的簡寫,可以理解成變數的意思。在es6之前,js宣告變數都是採用的var。例項1 var str hello world console.log str hello world 例項2 var a 2 if true console.log a 3例項3 for var i 0 ...

es6學習過程(一)

一 let關鍵字的用途 在平時我們寫 的時候,都是用var來宣告乙個變數 其實也沒有其他的關鍵字了 但是在es6出來以後,除了var,還可以使用let來宣告變數。為什麼會出現let而不僅僅使用var就好了呢?那是因為var這個關鍵字在某些時候是很坑的。var的不足之處 1.如果使用var宣告的變數會...