2020 11 09 ES6基礎知識

2021-10-10 09:18:01 字數 2318 閱讀 3627

宣告變數

變數只在當前的**塊有效

執行結果如下:

當不在**塊內列印時

console.

log(a,b)

執行結果如下:

變數的宣告不會提公升

console.

log(a)

let a =

1

執行過後**報錯,若為var a=1,結果為undefined

暫時性死區(避免變數的全域性汙染)

不允許重複宣告

宣告乙個唯讀的常量,具備let的一切特性

es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構。

let

[a,b,c]=[

'tom',20

,true

]console.

log(a,b,c)

//結果:tom 20 true 完全解構

let[a,b,c]=[

'tom',20

,true,11

,]console.

log(a,b,c)

//結果:tom 20 true 不完全解構

let[a,b,c,d,e]=[

1,2,

3]console.

log(a,b,c,d,e)

//結果:1 2 3 undefined undefined 解構不成功

let[a,b,

[...c]]=

[1,2

,[3,

4,5]

]console.

log(a,b,c)

//結果:1 2 [ 3, 4, 5 ] 將剩餘的用...變成陣列賦值給最後乙個變數

let[a=

4,b=

5,c=

6,d=7]

=[1,

2]console.

log(a,b,c,d)

//結果:1 2 6 7 預設值

根據屬性名,一一對應的關係,沒有順序,變數必須與屬性同名,才能取到正確的值。

預設值(預設值生效的條件是,物件的屬性值嚴格等於undefined)

let=;

console.

log(foo,bar)

//結果:aaa bbb

解構時,字串被轉換成了乙個類似陣列的物件。

也可以對陣列的屬性解構

const

[a, b, c, d, e]

='hello'

;console.

log(a,b,c,d,e)

//結果:h e l l o

let=

'hello'

console.

log(trim === string.prototype.trim)

//結果:true

let=

true

console.

log(tostring === boolean.prototype.tostring)

;//結果:true

解構時,如果等號右邊是數值和布林值,則會先轉為物件

不具備迭代器,解構不成功

function

add(

[a,b]

)var res =

add([1

,2])

;console.

log(res)

//結果:3

function

add(

[a,b]

)var res =

add([3

]);console.

log(res)

//結果:nan,此時a為3,b為undefined,所以相加不是乙個數值

function

add(

)let res =

add();

console.

log(res)

//結果:15

es6基礎知識

1 箭頭操作符 var arr 1,5,6 傳統寫法 arr.foreach function v 箭頭操作符 arr.foreach v console.log v 2 字串模板 var str math.random console.log you num is 3 解構 函式解構 var x,...

es6 generator 基礎知識

1 定義和使用 function gen 有點類似類的例項化過程 let generatorresult gen 核心方法next generatorresult.next generator 如同乙個序列 一旦序列中的值被消費,你就不能再次消費它。generatorresult.next unde...

ES6基礎知識清單

塊的作用域 let 恒量 const 解構陣列 array destructuring 解構物件 object destructuring 模版字串 template strings 帶標籤的模版字串 tagged templates 判斷字串裡是否包含其他字串 預設引數 default param...