ES6新特性之解構(gòu)、參數(shù)、模塊和記號的示例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹了ES6新特性之解構(gòu)、參數(shù)、模塊和記號的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網(wǎng)站、網(wǎng)站建設、外貿(mào)營銷網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的會昌網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

具體如下:

一、解構(gòu)

解構(gòu)提供了一個方便的地從對象或數(shù)組中提取數(shù)據(jù)的方法,請看下面的例子:

//ES6
let [x,y]=[1,2];//x=1,y=2
//ES5
var arr=[1,2];
var x=arr[0];
var y=arr[1];

使用這個語法,可以一次性給多個變量賦值。一個很好的附加用處是可以很簡單的交換變量值:

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

解構(gòu)也可以用于對象,注意對象中必須存在的對應的鍵:

let obj={x:1,y:2};
let {x,y}=obj;//a=1,b=1

或者

let {x:a,y:b}=obj;//a=1,b=2

另一個有趣的模式是模擬多個返回值:

function doSomething(){
   return [1,2];
}
let [x.y]=doSomething();//x=1.y=2

解構(gòu)可以用來為參數(shù)對象賦默認值。通過對象字面量,可以模擬命名參數(shù):

function doSomething({y:1,z:0}){
   console.log(y,z);
}
doSomething({y:2})

二、參數(shù)

1、默認值

在ES6中,可以定義函數(shù)的參數(shù)默認值。語法如下:

function doSomething(){
   return x*y;
}
doSomething(5);//10
doSomethinf(5,undefined);//10
doSomething(5,3);//15<br><br>//ES5中給參數(shù)賦默認值<br>function doSomething(x,y){<br>y=y===undefined?2:y;<br>return x*y;<br>}

傳遞undefined或不傳參數(shù)時都會觸發(fā)參數(shù)使用默認值。

2、REST參數(shù)

前面我們已經(jīng)學習了省略號操作符,剩余參數(shù)和它很類似,它同樣是使用‘...'語法,允許你把末尾的參數(shù)保存在數(shù)組中:

funtion doSomething(x,...remaining){
  return x*rremaining.length;
}
dodSomething(5,0,0,0);//15

三、模塊

在ES6的模塊語法中,模塊設計圍繞export和import關鍵詞,現(xiàn)在讓我們看一個包含兩個模塊的例子:

//lib/ath.js
export function sum(x,y){
  return x+y
};
export var pi=3.14;
//app.js
import {sum,pi}form"lib/math.js";
console.log(sum(pi,pi);

正如你所見,可以存在多個export聲明,每個都要明確的指出輸出值得類型。本例中的import聲明使用一種語法,來明確定義被導入的內(nèi)容,可以使用*通配符,結(jié)合as關鍵詞給模塊提供一個本地名稱,把模塊當成一個整體導入:

//app.js
import*as math form"lib/math.js";
console.lgo(math.sum(math.pi,math.pi));

模塊系統(tǒng)有一個default輸出,它可以是一個函數(shù),只需要提供一個本地名稱就可以導入這個默認值:

//lib/my-fn.js
export default function(){
  console.log('echo echo);
}
//app.js
import doSomething from 'lib/my-fn,js';
doSomething();

請注意import聲明是同步的,但是模塊代碼需在所有依賴加載完后才會運行

四、類

類的創(chuàng)建圍繞calss和constructor關鍵詞,以下是個簡短的示例:

class Vehicle{
   constructor(name){
     this.name=name;
     this.kind=''Vehicle";
   }
  getName(){
     return this.name;
  }
};
//Create an instance
let myVehicle=new Vehicle('rocky');

注意類的定義不是一般的對象,因此,類的成員間沒有逗號。創(chuàng)建一個類的對象時,需要使用new關鍵詞,繼承一個基類時,使用extends:

class Car extends Vehicle{
   constructor(name){
      super(name);
      this.kind='car';
   }
}
let myCar=new Car('bumpy');
myCar.getName();//'bumpy';
myCar instanceof Car;//true
myCar instanceof Vehicle;//true

從衍生類中,你可以使用從任何構(gòu)造函數(shù)或方法中使用super來獲取它的基類:使用super()調(diào)用父類構(gòu)造函數(shù);調(diào)用其他成員。

五、記號

記號是一個新的原生數(shù)據(jù)的類型,像Number和String一樣,你可以使用記號為對象屬性創(chuàng)建唯一標示或創(chuàng)建唯一的常量。創(chuàng)建方法如下:

const MY_CONSTANT=Symbol();
let obj={};
obj[MY_CONSTANT]=1;

注意通過記號產(chǎn)生的鍵值對不能通過Object.getOwnPorpertyNames()獲得,在for...in遍歷、Object.key()、JSON.stringify()中均不可見,這是與基于字符串的鍵相反的,你可以通過Object.getOenPropertySymbols()獲取一個對象的記號數(shù)組。記號與const配合很合適,因為它們都有不可改變的特性。

轉(zhuǎn)譯

現(xiàn)在瀏覽器對ES6的支持還不廣泛,且個瀏覽器也各不相同,可能你寫的代碼在用戶的瀏覽器中還不能完全解析,這就是我們?yōu)槭裁葱枰汛a轉(zhuǎn)換成能在當前的任何瀏覽器中良好運行的舊版本JavaScript(ES5),這種轉(zhuǎn)換通常稱為轉(zhuǎn)譯,我們必須要這么做,知道所有我們想兼容的瀏覽器都能運行ES6為止。轉(zhuǎn)譯的方法有很多種,包括Bable、Traceur、TypeScript等。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“ES6新特性之解構(gòu)、參數(shù)、模塊和記號的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)建站,關注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道,更多相關知識等著你來學習!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站bm7419.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前題目:ES6新特性之解構(gòu)、參數(shù)、模塊和記號的示例分析-創(chuàng)新互聯(lián)
瀏覽路徑:http://bm7419.com/article12/ddpcgc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、軟件開發(fā)關鍵詞優(yōu)化、動態(tài)網(wǎng)站標簽優(yōu)化、營銷型網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設