成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6入門到進(jìn)階(二):循環(huán)、數(shù)組、對象

JerryZou / 3439人閱讀

摘要:優(yōu)點(diǎn)按需加載可以寫中路徑也可以動態(tài)加以后默認(rèn)就是嚴(yán)格模式,默認(rèn)嚴(yán)格模式完參考視頻資料經(jīng)典入門到進(jìn)階

上一篇:ES6入門到進(jìn)階(一):let、解構(gòu)賦值、字符串模板、函數(shù) 一、循環(huán)

ES5里面新增一些東西

1.1 arr.forEach()(常用)
    1. for
        for(let i=0; i
1.2 arr.map()(常用)
arr.map()  //  `非常有用,做數(shù)據(jù)交互`  "映射"
    正常情況下,需要配合return,返回是一個新的數(shù)組
    若是沒有return,相當(dāng)于forEach

    注意:平時(shí)只要用map,一定是要有return
    
    重新整理數(shù)據(jù)結(jié)構(gòu):
        [{title:"aaa"}]   ->  [{t:"aaaa"}]
1.3 arr.filter(): 過濾,過濾一些不合格“元素”, 如果回調(diào)函數(shù)返回true,就留下來
1.4 arr.some() 和 arr.every()
arr.some(): 類似查找,  數(shù)組里面某一個元素符合條件,返回true
arr.every(): 數(shù)組里面所有的元素都要符合條件,才返回true
其實(shí)他們可以接收兩個參數(shù):
    arr.forEach/map...(循環(huán)回調(diào)函數(shù), this指向誰);
------------------------------------------------------------
arr.reduce()   //從左往右
    求數(shù)組的和、階乘
    
arr.reduceRight()  //從右往左
------------------------------------------------------------    

ES2017新增一個運(yùn)算符:**

冪
    Math.pow(2,3)等價(jià)于:2 ** 3

======================================================
for....of....:

arr.keys()    數(shù)組下標(biāo)
arr.entries()    數(shù)組某一項(xiàng)

for(let val of arr){
    console.log(val);
}
二、數(shù)組 2.1 擴(kuò)展運(yùn)算符:
...

let arr =[1,2,3];
復(fù)制數(shù)組:let arr2 = [...arr];

let arr2 = Array.from(arr);

2.2 Array.from

作用:類數(shù)組(獲取一組元素、arguments...) 對象轉(zhuǎn)成數(shù)組

個人觀點(diǎn): 具備 length這個東西,就靠譜

Array.of(): 把一組值,轉(zhuǎn)成數(shù)組

let arr = Array.of("apple","banana","orange");

console.log(arr);
2.3 find,findIndex,fill

arr.find(): 查找,找出第一個符合條件的數(shù)組成員,如果沒有找到,返回undefined

arr.findIndex(): 找的是位置, 沒找到返回-1

arr.fill():填充
arr.fill(填充的東西, 開始位置, 結(jié)束位置);

在ES2016里面新增:

arr.indexOf()
arr.includes()
    str.includes()
三、對象 3.1 對象簡潔語法(相當(dāng)有用)
    

===>

new Vuex.Store({
    state,
    mutation,
    types,
    actions
});

new Vue({
    router,
    App,
    vuex
})
3.2 Object.is()

用來比較兩個值是否相等

Object.is("a","a");

比較兩個東西相等:
    ==
    ===

Object.is(NaN, NaN); //true

Object.is(+0, -0); //false

Object.assign(): 用來合并對象

let 新的對象 = Object.assign(目標(biāo)對象, source1, srouce2....)

function ajax(options){  //用戶傳
    let defaults={
        type:"get",
        header:
        data:{}
        ....
    };

    let json = Object.assign({}, defaults, options);
    .....
}


用途:
    1. 復(fù)制一個對象
    2. 合并參數(shù)

ES2017引入:

Object.keys()
Object.entries();
Object.values();

    let {keys, values, entries} = Object;let {keys, values, entries} = Object;

對象身上: 計(jì)劃在ES2018引入

...

let json = {a:3, b:4};
        let json2 = {...json};
四、Promise

承諾,許諾

作用:  解決異步回調(diào)問題

傳統(tǒng)方式,大部分用回調(diào)函數(shù),事件

ajax(url,{  //獲取token
    ajax(url,()=>{  //獲取用戶信息
        ajax(url, ()=>{
            //獲取用戶相關(guān)新聞
        })
    })
})
4.1 語法
    let promise = new Promise(function(resolve, reject){
        //resolve,   成功調(diào)用
        //reject     失敗調(diào)用
    });

    promise.then(res=>{

    }, err=>{
        
    })

//捕獲錯誤
promise.catch(err=>{})

本人用法:

    new Promise().then(res=>{

    }).catch(err=>{
        
    })

Promise.resolve("aa") :  將現(xiàn)有的東西,轉(zhuǎn)成一個promise對象, resolve狀態(tài),成功狀態(tài)
    等價(jià)于:
    new Promise(resolve =>{
        resolve("aaa")
    });
Promise.reject("aaa"):   將現(xiàn)有的東西,轉(zhuǎn)成一個promise對象,reject狀態(tài),失敗狀態(tài)
    等價(jià)于:
    new Promise((resolve, reject) =>{
        reject("aaa")
    });

Promise.all([p1, p2, p3]): 把promise打包,扔到一個數(shù)組里面,打包完還是一個promise對象

    必須確保,所有的promise對象,都是resolve狀態(tài),都是成功狀態(tài)
Promise.race([p1, p2, p3]): 只要有一個成功,就返回
4.2 案例:用戶登錄 -> 用戶信息
五、模塊化

JavaScript不支持模塊化

    ruby   require
    python  import

在ES6之前,社區(qū)制定一套模塊規(guī)范:
    Commonjs        主要服務(wù)端  nodeJs    require("http")
    AMD            requireJs, curlJs
    CMD            seaJs

ES6出來,統(tǒng)一服務(wù)端和客戶端模塊規(guī)范:
    import {xx} ffffd
5.1 模塊化

注意: 需要放到服務(wù)器環(huán)境

a). 如何定義模塊?
        export  東西
        export const a =12;
        export{
            a as aaa,
            b as banana
        }
        export default 12; //import a 不需要加花括號
b). 如何使用?
        import
        import "./modules/1.js"; 
        import {a as a, banana, c} from "./modules/2.js"
        import * as modTwo from "./modules/2.js";
        import a,[cc,dd} from "/.modules/3.js";
使用模塊:
    

5.2 import: 特點(diǎn)
    a). import 可以是相對路徑,也可以是絕對路徑
        import "https://code.jquery.com/jquery-3.3.1.js";
    b). import模塊只會導(dǎo)入一次,無論你引入多少次
    c). import "./modules/1.js";  如果這么用,相當(dāng)于引入文件
    d). 有提升效果,import會自動提升到頂部,"首先執(zhí)行"
    e). 導(dǎo)出去模塊內(nèi)容,如果里面有定時(shí)器更改,外面也會改動
5.3 import()

類似node里面require, 可以動態(tài)引入, 默認(rèn)import語法不能寫到if之類里面,返回值,是個promise對象。

    import("./modules/1.js").then(res=>{
        console.log(res.a+res.b);
    });  

    優(yōu)點(diǎn):
        1. 按需加載
        2. 可以寫if中
        3. 路徑也可以動態(tài)

    Promise.all([])

ES2017加 async await:

"use strict"        以后默認(rèn)就是嚴(yán)格模式,es6默認(rèn)嚴(yán)格模式

完!

參考視頻資料:ES6經(jīng)典入門到進(jìn)階

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107580.html

相關(guān)文章

  • ES6入門進(jìn)階(一):let、解構(gòu)賦值、字符串模板、函數(shù)

    摘要:注意問題,不在是運(yùn)行時(shí)所在的對象箭頭函數(shù)里面沒有用箭頭函數(shù)不能當(dāng)構(gòu)造函數(shù)下一篇入門到進(jìn)階二循環(huán)數(shù)組對象參考視頻資料經(jīng)典入門到進(jìn)階 一、簡介 ES6 -> ECMA 標(biāo)準(zhǔn) ES6 -> 2015年6月 ES6.0 每年6月份,發(fā)布一個版本 ES6環(huán)境: webpack3.x Traceur 二、let、const 2.1 關(guān)于定義(聲明)變量 var a=12; ...

    WalkerXu 評論0 收藏0
  • 【連載】前端個人文章整理-從基礎(chǔ)入門

    摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...

    madthumb 評論0 收藏0
  • 進(jìn)階1-5期】JavaScript深入之4類常見內(nèi)存泄漏及如何避免

    摘要:本期推薦文章類內(nèi)存泄漏及如何避免,由于微信不能訪問外鏈,點(diǎn)擊閱讀原文就可以啦。四種常見的內(nèi)存泄漏劃重點(diǎn)這是個考點(diǎn)意外的全局變量未定義的變量會在全局對象創(chuàng)建一個新變量,如下。因?yàn)槔习姹镜氖菬o法檢測節(jié)點(diǎn)與代碼之間的循環(huán)引用,會導(dǎo)致內(nèi)存泄漏。 (關(guān)注福利,關(guān)注本公眾號回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進(jìn)階的第一期,本周的主題...

    red_bricks 評論0 收藏0
  • 進(jìn)階4-3期】面試題之如何實(shí)現(xiàn)一個深拷貝

    摘要:今天這篇文章我們來看看一道必會面試題,即如何實(shí)現(xiàn)一個深拷貝。木易楊注意這里使用上面測試用例測試一下一個簡單的深拷貝就完成了,但是這個實(shí)現(xiàn)還存在很多問題。 引言 上篇文章詳細(xì)介紹了淺拷貝 Object.assign,并對其進(jìn)行了模擬實(shí)現(xiàn),在實(shí)現(xiàn)的過程中,介紹了很多基礎(chǔ)知識。今天這篇文章我們來看看一道必會面試題,即如何實(shí)現(xiàn)一個深拷貝。本文會詳細(xì)介紹對象、數(shù)組、循環(huán)引用、引用丟失、Symbo...

    longmon 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<