ES6知識點總結(一)

2021-10-22 09:47:19 字數 1959 閱讀 3931

es6知識點總結(一)

是對賦值運算子的擴充套件,一種針對陣列或者物件進行模式匹配,然後對其中的變數進行賦值

變數的解構賦值實用性很強,使用場景很多:

1.交換賦值

2.函式引數的定義

3.函式引數的預設值

4.從函式返回多個值

5.提取json資料

6.遍歷map結構

陣列解構、物件解構、字串解構、數值解構、布林值解構、函式引數解構

基本用法

var a, b, rest;

[a, b] = [10, 20];

console.log(a); // 10

console.log(b); // 20

[a, b, ...rest] = [10, 20, 30, 40, 50];    // ... 擴充套件運算子/展開運算子

console.log(a); // 10

console.log(b); // 20

console.log(rest); // [30, 40, 50]

let [a, [b], d] = [1, [2, 3], 4];

console.log(a); //1

console.log(b); //2

注意:

如果解構不成功,變數的值就等於undefined

沒有變數接收的解構值會被忽略掉

如果賦值不是陣列則會報錯。

防止從陣列中取出乙個值為undefined的物件,可以在表示式左邊的陣列中為任意物件預設預設值

let [foo = true] = ;

console.log(foo); //true

let a, b;

[a=5, b=7] = [3];

console.log(a); // 3

console.log(b); // 7

預設值可以引用解構賦值的其他變數,但改變量必須已經宣告,否則會報錯。

let [x = 1, y = x] = [2];

console.log(x); // 2

console.log(y); // 2

物件與陣列解構賦值比較

陣列的元素是按次序排列的,變數的取值是由它的位置決定

物件的屬性沒有次序,變數必須與屬性同名才能取到正確的值。

如果變數名與屬性名不一致,必須明確對應關係

基本賦值

var o = ;

var = o;

console.log(p); // 42

console.log(q); // true

let obj = ]};

let ] } = obj;

物件解構賦值也指定預設值,且預設值生效條件是物件的屬性嚴格等於undefined。

var  = ;

console.log(a); // 3

console.log(b); // 5

由於陣列本質是特殊的物件,因此可以對陣列進行物件屬性的解構。

let arr = [1, 2, 3];

let = arr;

將字串看作乙個類似於陣列的物件。

const [a, b, c, d] = 'hello';

console.log(a); //h

console.log(b); //e

console.log(c); //l

console.log(d); //l

類似陣列的物件都有乙個length屬性,因此還可以對這個屬性進行解構。

let  = 'hello';

console.log(len); //5

ES6知識點總結

面向過程和物件導向的對比 面向過程 物件導向 物件 物件是由屬性和方法組成的 類 class 在 es6 中新增加了類的概念,可以使用 class 關鍵字宣告乙個類,之後以這個類來例項化物件 物件導向的思維特點 抽取 抽象 物件共用的屬性和行為組織 封裝 成乙個類 模板 對類進行例項化,獲取類的物件...

ES6知識點簡單總結

let宣告的變數只能在所處遇到的快級有效。不存在變數提公升。暫時性死區,不受外部 影響。在乙個大括號中使用let關鍵字宣告的變數才具有塊級作用域,var關鍵字不具有這個特點 具有塊級作用域。使用const關鍵字宣告的常量必須賦值。常量賦值後值不能更改。varletconst 函式級作用域 塊級作用域...

es6常用知識點總結

1.定義變數的方式 let 1 沒有變數提公升 var具有變數提公升 即在當前作用域的最上面定義這個變數 但不賦值 例 console.log x var x 20 顯示undefined console.log m let m 100 報錯 2 let不可以重複宣告 例 var x 10 var ...