国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

ES6、ES7和ES8常用的特性總結(代碼示例)

來源:懂視網 責編:小采 時間:2020-11-27 19:27:43
文檔

ES6、ES7和ES8常用的特性總結(代碼示例)

ES6、ES7和ES8常用的特性總結(代碼示例):本篇文章給大家帶來的內容是關于ES6、ES7和ES8常用的特性總結(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。ES6常用新特性1. let && constlet 命令也用于變量聲明,但是作用域為局部 { let a = 10;
推薦度:
導讀ES6、ES7和ES8常用的特性總結(代碼示例):本篇文章給大家帶來的內容是關于ES6、ES7和ES8常用的特性總結(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。ES6常用新特性1. let && constlet 命令也用于變量聲明,但是作用域為局部 { let a = 10;

本篇文章給大家帶來的內容是關于ES6、ES7和ES8常用的特性總結(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

ES6常用新特性

1. let && const

let 命令也用于變量聲明,但是作用域為局部
{
 let a = 10;
 var b = 1; 
}
在函數外部可以獲取到b,獲取不到a,因此例如for循環計數器就適合使用let。

const用于聲明一個常量,設定后值不會再改變
const PI = 3.1415;
PI // 3.1415
PI = 3; //TypeError: Assignment to constant variable.

2. 解構賦值

ES6 允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destructuring)。 
例如數組:

let [a, b, c] = [1, 2, 3];
//等同于
let a = 1;
let b = 2;
let c = 3;
這真的讓代碼看起來更優美,有種python賦值的既視感。 

對象的解構賦值:獲取對象的多個屬性并且使用一條語句將它們賦給多個變量。

var {
 StyleSheet,
 Text,
 View
} = React;

等同于
var StyleSheet = React.StyleSheet;
var Text = React.Text;
var View = React.Text;

3. 箭頭函數

ES6中新增箭頭操作符用于簡化函數的寫法,操作符左邊為參數,右邊為具體操作和返回值。

var sum = (num1, num2) => { return num1 + num2; }
//等同于
var sum = function(num1, num2) {
 return num1 + num2;
};
箭頭函數還修復了this的指向,使其永遠指向詞法作用域:

var obj = {
 birth: 1990,
 getAge: function () {
 var b = this.birth; // 1990
 var fn = () => new Date().getFullYear() - this.birth; // this指向obj對象
 return fn();
 }
};
obj.getAge(); // 25

4. ...操作符

這個的引入幾乎不會用到extend這個函數來。通過它可以將數組作為參數直接傳入函數:

var people = ['Lily', 'Lemon', 'Terry'];
function sayHello(people1,people2,people3){
 console.log(`Hello ${people1},${people2},${people3}`);
}
sayHello(...people);//
輸出:Hello Lily,Lemon,Terry

5. iterable類型

為了統一集合類型,ES6標準引入了新的iterable類型,Array、Map和Set都屬于iterable類型,具有iterable類型的集合可以通過新的for … of循環來遍歷。

var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍歷Array
 alert(x);
}
for (var x of s) { // 遍歷Set
 alert(x);
}
for (var x of m) { // 遍歷Map
 alert(x[0] + '=' + x[1]);
}

Map相關操作如下, Set同理:

var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 刪除key 'Adam'
m.get('Adam'); // undefined

6.類

ES6提供了更接近傳統語言的寫法,引入了Class(類)這個概念,作為對象的模板。通過class關鍵字,可以定義類,與多數傳統語言類似。

//定義類
class Point {
 constructor(x, y) {
 this.x = x;
 this.y = y;
 }

 toString() {
 return '(' + this.x + ', ' + this.y + ')';
 }
}

ES7常用新特性

1. Array.prototype.includes

在一個數組或者列表中檢查是否存在一個值
let arr = ['react', 'angular', 'vue']

// Correct
if (arr.includes('react')) {
 console.log('Can use React')
}
還能在字符串中使用includes:

let str = 'React Quickly'

// Correct
if (str.toLowerCase().includes('react')) { // true
 console.log('Found "react"') 
}
除了增強了可讀性語義化,實際上給開發者返回布爾值,而不是匹配的位置。

includes也可以在NaN(非數字)使用。最后 ,includes第二可選參數fromIndex,這對于優化是有好處的,因為它允許從特定位置開始尋找匹配。
更多例子:

console.log([1, 2, 3].includes(2)) // === true)
console.log([1, 2, 3].includes(4)) // === false)
console.log([1, 2, NaN].includes(NaN)) // === true)
console.log([1, 2, -0].includes(+0)) // === true)
console.log([1, 2, +0].includes(-0)) // === true)
console.log(['a', 'b', 'c'].includes('a')) // === true)
console.log(['a', 'b', 'c'].includes('a', 1)) // === false)

2.Exponentiation Operator(求冪運算)

et a = 7 ** 12
let b = 2 ** 7
console.log(a === Math.pow(7,12)) // true
console.log(b === Math.pow(2,7)) // true
開發者還可以操作結果:

let a = 7
a **= 12
let b = 2
b **= 7
console.log(a === Math.pow(7,12)) // true
console.log(b === Math.pow(2,7)) // true

ES8新特性

1、Object.values/Object.entries

ES5 引入了Object.keys方法,返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵名。
Object.values方法返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵值。
Object.entries方法返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵值對數組。

let {keys, values, entries} = Object; 

let obj = { a: 1, b: 2, c: 3 }; 

for (let key of keys(obj)) { 
 console.log(key); // 'a', 'b', 'c'
} 

for (let value of values(obj)) { 
 console.log(value); // 1, 2, 3
} 

for (let [key, value] of entries(obj)) { 
 console.log([key, value]); // ['a', 1], ['b', 2], ['c', 3]
}

2. String padding(字符串填充)

3. Async/Await

使用Promise
使用Promise寫異步代碼,會比較麻煩:

axios.get(`/q?query=${query}`)
.then(response => response.data)
.then(data =>
{
this.props.processfetchedData(data);
})
.catch(error => console.log(error));
使用Async/Await
Async/Await使得異步代碼看起來像同步代碼,這正是它的魔力所在:

async fetchData(query) =>
{
try
{
const response = await axios.get(`/q?query=${query}`);
const data = response.data;
return data;
}
catch (error)
{
console.log(error)
}
}
 
fetchData(query).then(data =>
{
this.props.processfetchedData(data)
})

Async/Await是寫異步代碼的新方式,以前的方法有回調函數和Promise。相比于Promise,它更加簡潔,并且處理錯誤、條件語句、中間值都更加方便

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

ES6、ES7和ES8常用的特性總結(代碼示例)

ES6、ES7和ES8常用的特性總結(代碼示例):本篇文章給大家帶來的內容是關于ES6、ES7和ES8常用的特性總結(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。ES6常用新特性1. let && constlet 命令也用于變量聲明,但是作用域為局部 { let a = 10;
推薦度:
標簽: ES6 es7 es8常用
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美日韩精品乱国产538 | 一级特黄牲大片免费视频 | 日本久久精品免视看国产成人 | 国产视频分类 | 欧美日韩中出 | 日本a v 黄 | 欧美第五页 | 亚洲色图欧美自拍 | 日韩一级精品视频在线观看 | 国产欧美日韩另类va在线 | 伊人久久91 | 国产偷亚洲偷欧美偷精品 | 欧美视频免费在线观看 | 亚洲国产第一页 | 亚洲欧美国产精品 | 国产精品资源在线播放 | 最新国产视频 | 免费看特级淫片日本 | 成人无码一区二区片 | 一级毛片免费 | 一区二区视频在线观看 | 欧美人在线一区二区三区 | 日韩精品一区二区三区四区 | 国产精选在线视频 | 国产一区二区精品久久 | 国产偷窥在线观看 | 久久91这里精品国产2020 | 亚洲精品一线二线三线 | 欧美日韩一区二区三区四区 | 欧美色图第一页 | 国产精品电影一区二区三区 | 四虎国产精品免费久久久 | 欧美日本道免费一区二区三区 | 久久国产精品视频 | 激情欧美在线 | 国产香蕉视频 | 日韩欧美在线综合网 | 99久久国内精品成人免费 | 国产高清免费 | 永久免费观看的毛片的网站 | 亚洲欧美在线观看 |