深入理解 ES6(2)

  1. 在定義函數(shù)時可以傳入默認(rèn)參數(shù)值,當(dāng)不為有默認(rèn)參數(shù)值的參數(shù)傳入值或者主動為其傳入undefined時,會使用這個默認(rèn)值。
  2. 在ES6中,如果一個函數(shù)使用了默認(rèn)參數(shù)值,arguments對象會保持與命名參數(shù)分離。
function mixArgs(first, second="b") {
      console.log(arguments.length);
      console.log(first === arguments[0]); 
      console.log(second === arguments[1]);
      first = "c";
      second = "d";
      console.log(first === arguments[0]);
      console.log(second === arguments[1]);
    }
mixArgs("a");  
// true false false false
  1. Rest參數(shù)和擴(kuò)展
    不確定函數(shù)有幾個參數(shù)時,可以使用...來動態(tài)確定參數(shù)數(shù)量
function sum(...m) {
      let total = 0;
      for (let i of m) {
        total += i;
      }
      console.log(total);
    }
sum(2,4,98,40);

在調(diào)用sum函數(shù)時,可以傳入不同數(shù)量的參數(shù)。
...可以使用在擴(kuò)展數(shù)組中

let [x,y] = [4, 8];   // x, y對號入座,即數(shù)組模型的解構(gòu)
let [x,...y] = [4, 8, 9, 1, 3];   // x對號入座,y就擴(kuò)展為一個包含四個元素的數(shù)組
  1. Promise語法, 封裝的時候通過鏈?zhǔn)秸{(diào)用.then的方式獲取回調(diào),在resolve中處理結(jié)果,也可以用Promise.all()API同時調(diào)用多個接口和請求,然后通過解構(gòu)一一返回結(jié)果以減少代碼的冗余。
let checkLogin = function () {
      return new Promise(function (resolve, reject) {
        let flag = document.cookie.indexOf("userId") > -1 ? true : false;

        if(flag=true){
          resolve({
            status: 0,
            result: true
          });
        }else{
          reject("error");
        }
      });
};
let getUserInfo = () => {
      return new Promise((resolve, reject) => {
        let userInfo = {
          userId: "559"
        };
        resolve(userInfo);
      })
};
checkLogin().then((res) => {
      if(res.status === 0){
        console.log("success");
        return getUserInfo();
      }
    }).catch((error) => {
      console.log(`errors:${error}`);
    }).then((res2) => {
      console.log(`userId:${res2.userId}`);
});

Promise.all([checkLogin(), getUserInfo()]).then(([res1, res2]) => {
      console.log(`result1:${res1.result}, result2:${res2.userId}`);
    });

Promise.all()中的參數(shù)必須是Promise對象,不能隨便傳別的參數(shù)進(jìn)去。

  1. 模塊化機(jī)制
    export導(dǎo)出,import導(dǎo)入,需要注意的是,如果導(dǎo)出為變量,導(dǎo)入就要用花括號來接受變量
// sum.js
export let sum = (x,y)=>{
  return x + y;
};
// main.js
import {sum, minus} from "./util";

也可以通過*封裝然后調(diào)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一章:塊級作用域綁定 塊級聲明 1.var聲明及變量提升機(jī)制:在函數(shù)作用域或者全局作用域中通過關(guān)鍵字var聲明的...
    BeADre_wang閱讀 1,009評論 0 0
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,172評論 2 9
  • 原創(chuàng)文章&經(jīng)驗總結(jié)&從校招到A廠一路陽光一路滄桑 詳情請戳www.codercc.com 主要知識點:新增的字符串...
    你聽___閱讀 1,133評論 0 0
  • 第1章 塊級作用域綁定 1. var聲明及變量提升(Hoisting)機(jī)制 基于js原生是沒有塊級作用域的,看下面...
    Ztry閱讀 140評論 0 0
  • 這里面有兩瓶補(bǔ)充裝(綠色瓶子),一條毛巾(微波爐加熱時用) 加熱時先用毛巾包起來 中火3-4分鐘 就可以敷在脖子部...
    葉_bfb1閱讀 972評論 0 0

友情鏈接更多精彩內(nèi)容