es6常用語法

2021-10-19 07:18:53 字數 2941 閱讀 2634

es6常用語法

1.let const

塊級作用域,不能重複宣告,沒有提公升

const常量,引用型別

暫時性死區

2.字串拼接

兩個單引號(反的單引號)拼接字串

3.解構賦值

對稱賦值,更容易理解,乙個陣列= 另外乙個陣列,乙個物件=另外乙個物件

4.展開運算子 …

複製陣列方便

var arr1 = [1,2,3,[4,5],[6,7,[8,9]]];

var arr2 = […arr1];

arr2.push(1000);

arr1===arr2 // false

5.資料型別 new map

6.for…of

for…in

for…each

1.不能建立新陣列,沒有返回值

2.不能打斷

3.可以修改原陣列

var myarr=[,,

]myarr.foreach((item,index)=>)

修改原陣列

var a = [1,2,3,4,5]

a.foreach((item, index, arr) => )

console.log(a)

8.類和繼承

9.模組化 export 和 import

10.promise

generator、yield

async await

11.vue3的 proxy**,資料劫持。可以返回新陣列,13中劫持方法,監聽整個陣列的變化,物件的變化。

11.物件方法

11.1object.create(prototype[,propertiesobject])

使用指定的原型物件及其屬性去建立乙個新的物件。

var parent =

var child = object.create(parent,

});console.log(child); //

console.log(hild.proto); //

11.2object.assign(target, obj1, obj2…)

object.assign方法的第乙個引數是目標物件,後面的引數都是源物件。

const obj1 = };

const obj2 = object.assign({}, obj1);

obj1.a.b = 2;

obj2.a.b // 2

object.assign方法實行的是淺拷貝,而不是深拷貝。也就是說,如果源物件某個屬性的值是物件,那麼目標物件拷貝得到的是這個物件的引用。

object.assign([1, 2, 3], [4, 5])

// [4, 5, 3]

上面**中,object.assign把陣列視為屬性名為 0、1、2 的物件,因此源陣列的 0 號屬性4覆蓋了目標陣列的 0 號屬性1。

11.3object.keys()

不走原型鏈

for… in會遍歷原型

如果key是整數或者整數型別的字串,那麼會按從小到大的排序(排在其它資料型別前面);

其它資料型別,按照實際建立順序排序;

11.4object.values()

var an_obj = ;

console.log(object.values(an_obj)); //[「b」, 「c」, 「a」]

11.5 object.freeze()

凍結乙個物件,凍結指的是不能向這個物件新增新的屬性,不能修改其已有屬性的值,不能刪除已有屬性,以及不能修改該物件已有屬性的可列舉性、可配置性、可寫性。也就是說,這個物件永遠是不可變的。該方法返回被凍結的物件。

var obj = ,

foo: 『bar』

};object.freeze(obj); //

obj.foo = 『eee』;

console.log(obj); //

12.es6陣列新方法:

12.1array.from

array.from的設計目的是快速便捷把乙個類似陣列的可迭代物件建立成乙個新的陣列例項。

let likearr = ;

// es5的寫法

var arr1 = .slice.call(likearr); // [『a』, 『b』, 『c』]

// es6的寫法

let arr2 = array.from(likearr);

12.2array.of

array.of(3, 4, 5) // [3, 4, 5]

12.3 find 和 findindex

12.4flat 陣列展平

[1, 2, [3, 4]].flat(infinity)

// [1, 2, 3, 4]

12.5flatmap

方法對原陣列的每個成員執行乙個函式(相當於執行 array.prototype.map),然後對返回值組成的陣列執行 flat() 方法。該方法返回乙個新陣列,不改變原陣列。

注意:flatmap() 只能展開一層陣列。

[2, 3, 4].flatmap((x) => [x, x * 2])

// [2, 4, 3, 6, 4, 8]

// 相當於 [[2, 4], [3, 6], [4, 8]].flat()

arr.map(x=> x*2) 返回乙個新陣列

arr.filter(x=>x>5) 返回x大於5的新陣列

總結陣列新增的方法,一方面起到了增強型作用,一方面讓**變得更加簡潔。

其中 array.from 和 array.of 屬於建構函式方法。

從是否改變陣列自身的角度看:

copywithin、fill 會改變陣列自身,

includes、flat、flatmap不會改變陣列自身。

entries、keys、values、find、findeindex屬於陣列遍歷方法。

ES6常用語法

var var name woniu console.log name imooc let 塊級作用域 console.log name imooc let是塊級作用域,只有在括號內部才可以獲取到,外部是獲取不到的 const 塊級作用域 用處當我們很多人協作開發乙個專案的時候,希望乙個變數不會被修...

ES6常用語法

let宣告的變數不存在預解析 例如,使用var呼叫如下 不會出錯 alert inum var inum 10 預解析 預編譯 不報錯但是使用let會報錯 let不能預解析 下面的寫法會報錯 alert inum let inum 10 let宣告的變數不允許重複 同乙個作用域 下面方式不會報錯 如...

ES6常用語法

宣告變數let和const let宣告的變數不存在預解析 console.log flag var flag 123 let flag 456 let宣告的變數不允許重複 在同乙個作用域內 let flag 123 let flag 456 console.log flag es6引入了塊級作用域 ...