天天看點

拉勾大前端高薪訓練營/就業集訓營(完結版)

需要的夥伴看我昵稱

(10).支援let與const在之前JS是沒有塊級作用域的,const與let填補了這友善的空白,const與let都是塊級作用域。

let和var的差別: ● let沒有變量提升,存在暫時性死區,必須等let聲明完以後,變量才能使用 ● let變量不能重複聲明 ● let聲明的變量隻在let代碼塊有效

ES7的特性

(1).Array.prototype.includes()includes() 函數用來判斷一個數組是否包含一個指定的值,如果包含則傳回 true,否則傳回false

let arr = ['react', 'angular', 'vue']if  (arr.includes('react')) {    console.log('react存在')}複制代碼

(2).指數操作符在ES7中引入了指數運算符,具有與Math.pow(..)等效的計算結果。

console.log(Math.pow(2, 10)) // 輸出1024console.log(2**10) // 輸出1024複制代碼需要的夥伴看我昵稱

ES8的特性

(1).async/await在ES8中加入了對async/await的支援,也就我們所說的異步函數,這是一個很實用的功能。 async/await相當于一個文法糖,解決了回調地獄的問題

(2).Object.values()Object.values()是一個與Object.keys()類似的新函數,但傳回的是Object自身屬性的所有值,不包括繼承的值。

   a: 1,    b: 2,    c: 3,}// 不使用Object.values()const vals = Object.keys(obj).map(e => obj[e])console.log(vals) // [ 1, 2, 3 ]// 使用Object.values()console.log(Object.values(obj)) // [ 1, 2, 3 ]複制代碼

(3).Object.entriesObject.entries()函數傳回一個給定對象自身可枚舉屬性的鍵值對的數組。

const obj = {    a: 1,    b: 2,    c: 3,}// 不使用Object.entries()Object.keys(obj).forEach(key=>{    console.log('key:'+key+' value:'+obj[key])})//key:a value:1//key:b value:2//key:c value:3// 使用Object.entries()for(let [key,value] of Object.entries(obj1)){    console.log(`key: ${key} value:${value}`)}//key:a value:1//key:b value:2//key:c value:3複制代碼

(4).String padding在ES8中String新增了兩個執行個體函數String.prototype.padStart和String.prototype.padEnd,允許将空字元串或其他字元串添加到原始字元串的開頭或結尾

String.padStart(targetLength,[padString])複制代碼

targetLength:目前字元串需要填充到的目标長度。如果這個數值小于目前字元串的長度,則傳回目前字元串本身。 padString:(可選)填充字元串。如果字元串太長,使填充後的字元串長度超過了目标長度,則隻保留最左側的部分,其他部分會被截斷,此參數的預設值為 " "。

console.log('0.0'.padStart(4,'10')) //10.0console.log('0.0'.padStart(20))//                0.00  複制代碼String.padEnd(targetLength,padString])複制代碼

targetLength:目前字元串需要填充到的目标長度。如果這個數值小于目前字元串的長度,則傳回目前字元串本身。 padString:(可選) 填充字元串。如果字元串太長,使填充後的字元串長度超過了目标長度,則隻保留最左側的部分,其他部分會被截斷,此參數的預設值為 " ";

console.log('0.0'.padEnd(4,'0')) //0.00    console.log('0.0'.padEnd(10,'0'))//0.00000000複制代碼

(5).函數參數清單結尾允許逗号