es6學習總結 (this,Promise)

2022-07-10 10:48:11 字數 2057 閱讀 6461

this指向問題

es5中一句話可有概括誰呼叫this就指向誰(執行時生效),es6中箭頭函式中沒有this,所以es6中的this相當於乙個變數,她永遠繼承外層作用域的this(定義時生效),需要注意的物件不構成作用域,當然函式在生效時才能行車作用域。

function f(),1000)

}var obj=new f()

settimeout(()=>,3000)

settimeout(()=>,3000)

//21

//19 借鑑官網的例子

promise的鏈式呼叫

function  china(),1000)})

return  p;

}function  jiangshu(data),2000)

})return p;

}function  xian(data),2000)

})return p;

}china ().then(jiangshu).then(xian).then(function(data))

//china中國

//promise {}

//江蘇教育大省份

//盱眙縣地級市

//淮河鎮

如上**所示,promise的鏈式呼叫很好的避免的函式的**地獄問題。 

陣列擴充套件運算子

作用將乙個陣列轉為用逗號分隔的引數序列。

運算var add=(a,c)=>a+c;

var arr=[1,3];

add(...arr)

//4var arr1 = [0, 1, 2];

var arr2 = [3, 4, 5];

console.log(arr1)

// [0, 1, 2, 3, 4, 5]

let arr3=[1,2,3];

let arr4=[4,5,6];

arr3.push(...arr4)

console.log(arr3)

// [1, 2, 3, 4, 5, 6]

陣列的淺拷貝

const a1 = [1, 2];

const a2 = [...a1];

將字串轉為陣列

[...'hello']

// [ "h", "e", "l", "l", "o" ]

rest引數 

arguments類陣列通過array.prototype.slice.call()轉化為陣列

function f()

f(1,2,3,4)

// arguments(4) [1, 2, 3, 4, callee: ƒ, symbol(symbol.iterator): ƒ]

// [1, 2, 3, 4]

es6通過rest引數去掉arguments引數,rest直接是個陣列

const numbers = (...nums) => nums;

numbers(1, 2, 3, 4, 5)

//[1,2,3,4,5]

物件es6 引入了跟object.keys配套的object.valuesobject.entries,作為遍歷乙個物件的補充手段,供for...of迴圈使用。

let = object;

let obj = ;

for (let key of keys(obj))

for (let value of values(obj))

for (let [key, value] of entries(obj))

map資料結構(類似物件,值-值的對應,後續補充) 

set資料結構(類似陣列,沒有重複元素)

看乙個例子,陣列去重的簡單寫法

let arr = [1,2,3,4,5,5,4,3,2,1];

let quchong= [...new set(arr)];

console.log(quchong); // [1,2,3,4,5]

[...new set('ababbc')].join('') //字串去重

es6學習總結

一 let和const 1.let宣告的變數只在它所在的 塊有效。2.let宣告的變數僅在塊級作用域內有效。3.不存在變數提公升。4.每個let宣告的變數都有各自的作用域。它所宣告的變數一定要在宣告後使用,否則報錯 5.暫時性死區 只要塊級作用域內存在let命令,它所宣告的變數就 繫結 bindin...

ES6學習總結

1.建立 let x newset 2.特性 對基本資料型別,會自動去重 3.方法 x.add 新增 x.delete 刪除 x.has 刪除是否存在,返回布林 x.clear 清空 x.keys 返回鍵名的遍歷器 x.values 返回鍵值的遍歷器 x.foreach function 遍歷 ar...

ES6學習總結 四

與大多數物件導向語言不同,js建立之初不支援類,在es1 es5很多庫建立了一些工具來讓js顯得好像支援類 直到es6正式引入類。es6類的宣告是以class關鍵字開始後面緊跟類名,類宣告中有constructor方法可以直接定義乙個構造器。例class personclass 類和之前的函式構造器...