摘要:優(yōu)點(diǎn)按需加載可以寫(xiě)中路徑也可以動(dòng)態(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; i1.2 arr.map()(常用) arr.map() // `非常有用,做數(shù)據(jù)交互` "映射" 正常情況下,需要配合return,返回是一個(gè)新的數(shù)組 若是沒(méi)有return,相當(dāng)于forEach 注意:平時(shí)只要用map,一定是要有return 重新整理數(shù)據(jù)結(jié)構(gòu): [{title:"aaa"}] -> [{t:"aaaa"}]1.3 arr.filter(): 過(guò)濾,過(guò)濾一些不合格“元素”, 如果回調(diào)函數(shù)返回true,就留下來(lái) 1.4 arr.some() 和 arr.every()arr.some(): 類似查找, 數(shù)組里面某一個(gè)元素符合條件,返回true arr.every(): 數(shù)組里面所有的元素都要符合條件,才返回true其實(shí)他們可以接收兩個(gè)參數(shù): arr.forEach/map...(循環(huán)回調(diào)函數(shù), this指向誰(shuí)); ------------------------------------------------------------ arr.reduce() //從左往右 求數(shù)組的和、階乘arr.reduceRight() //從右往左 ------------------------------------------------------------ES2017新增一個(gè)運(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...) 對(duì)象轉(zhuǎn)成數(shù)組
個(gè)人觀點(diǎn): 具備 length這個(gè)東西,就靠譜Array.of(): 把一組值,轉(zhuǎn)成數(shù)組
let arr = Array.of("apple","banana","orange"); console.log(arr);2.3 find,findIndex,fillarr.find(): 查找,找出第一個(gè)符合條件的數(shù)組成員,如果沒(méi)有找到,返回undefined
arr.findIndex(): 找的是位置, 沒(méi)找到返回-1
arr.fill():填充
arr.fill(填充的東西, 開(kāi)始位置, 結(jié)束位置);在ES2016里面新增:
arr.indexOf() arr.includes() str.includes()三、對(duì)象 3.1 對(duì)象簡(jiǎn)潔語(yǔ)法(相當(dāng)有用)===>
new Vuex.Store({ state, mutation, types, actions }); new Vue({ router, App, vuex })3.2 Object.is()用來(lái)比較兩個(gè)值是否相等
Object.is("a","a"); 比較兩個(gè)東西相等: == === Object.is(NaN, NaN); //true Object.is(+0, -0); //falseObject.assign(): 用來(lái)合并對(duì)象
let 新的對(duì)象 = Object.assign(目標(biāo)對(duì)象, source1, srouce2....) function ajax(options){ //用戶傳 let defaults={ type:"get", header: data:{} .... }; let json = Object.assign({}, defaults, options); ..... } 用途: 1. 復(fù)制一個(gè)對(duì)象 2. 合并參數(shù)ES2017引入:
Object.keys() Object.entries(); Object.values(); let {keys, values, entries} = Object;let {keys, values, entries} = Object;對(duì)象身上: 計(jì)劃在ES2018引入
... let json = {a:3, b:4}; let json2 = {...json};四、Promise承諾,許諾
作用: 解決異步回調(diào)問(wèn)題傳統(tǒng)方式,大部分用回調(diào)函數(shù),事件
ajax(url,{ //獲取token ajax(url,()=>{ //獲取用戶信息 ajax(url, ()=>{ //獲取用戶相關(guān)新聞 }) }) })4.1 語(yǔ)法let promise = new Promise(function(resolve, reject){ //resolve, 成功調(diào)用 //reject 失敗調(diào)用 }); promise.then(res=>{ }, err=>{ }) //捕獲錯(cuò)誤 promise.catch(err=>{})本人用法:
new Promise().then(res=>{ }).catch(err=>{ }) Promise.resolve("aa") : 將現(xiàn)有的東西,轉(zhuǎn)成一個(gè)promise對(duì)象, resolve狀態(tài),成功狀態(tài) 等價(jià)于: new Promise(resolve =>{ resolve("aaa") }); Promise.reject("aaa"): 將現(xiàn)有的東西,轉(zhuǎn)成一個(gè)promise對(duì)象,reject狀態(tài),失敗狀態(tài) 等價(jià)于: new Promise((resolve, reject) =>{ reject("aaa") });√ Promise.all([p1, p2, p3]): 把promise打包,扔到一個(gè)數(shù)組里面,打包完還是一個(gè)promise對(duì)象
必須確保,所有的promise對(duì)象,都是resolve狀態(tài),都是成功狀態(tài) Promise.race([p1, p2, p3]): 只要有一個(gè)成功,就返回4.2 案例:用戶登錄 -> 用戶信息 五、模塊化JavaScript不支持模塊化
ruby require python import 在ES6之前,社區(qū)制定一套模塊規(guī)范: Commonjs 主要服務(wù)端 nodeJs require("http") AMD requireJs, curlJs CMD seaJs ES6出來(lái),統(tǒng)一服務(wù)端和客戶端模塊規(guī)范: import {xx} ffffd5.1 模塊化注意: 需要放到服務(wù)器環(huán)境
a). 如何定義模塊? export 東西 export const a =12; export{ a as aaa, b as banana } export default 12; //import a 不需要加花括號(hào) 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 可以是相對(duì)路徑,也可以是絕對(duì)路徑 import "https://code.jquery.com/jquery-3.3.1.js"; b). import模塊只會(huì)導(dǎo)入一次,無(wú)論你引入多少次 c). import "./modules/1.js"; 如果這么用,相當(dāng)于引入文件 d). 有提升效果,import會(huì)自動(dòng)提升到頂部,"首先執(zhí)行"e). 導(dǎo)出去模塊內(nèi)容,如果里面有定時(shí)器更改,外面也會(huì)改動(dòng)5.3 import()類似node里面require, 可以動(dòng)態(tài)引入, 默認(rèn)import語(yǔ)法不能寫(xiě)到if之類里面,返回值,是個(gè)promise對(duì)象。
import("./modules/1.js").then(res=>{ console.log(res.a+res.b); }); 優(yōu)點(diǎn): 1. 按需加載 2. 可以寫(xiě)if中 3. 路徑也可以動(dòng)態(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/107580.html
摘要:注意問(wèn)題,不在是運(yùn)行時(shí)所在的對(duì)象箭頭函數(shù)里面沒(méi)有用箭頭函數(shù)不能當(dāng)構(gòu)造函數(shù)下一篇入門到進(jìn)階二循環(huán)數(shù)組對(duì)象參考視頻資料經(jīng)典入門到進(jìn)階 一、簡(jiǎn)介 ES6 -> ECMA 標(biāo)準(zhǔn) ES6 -> 2015年6月 ES6.0 每年6月份,發(fā)布一個(gè)版本 ES6環(huán)境: webpack3.x Traceur 二、let、const 2.1 關(guān)于定義(聲明)變量 var a=12; ...
摘要:個(gè)人前端文章整理從最開(kāi)始萌生寫(xiě)文章的想法,到著手開(kāi)始寫(xiě),再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫(xiě)好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開(kāi)始萌生寫(xiě)文章的想法,到著手...
摘要:本期推薦文章類內(nèi)存泄漏及如何避免,由于微信不能訪問(wèn)外鏈,點(diǎn)擊閱讀原文就可以啦。四種常見(jiàn)的內(nèi)存泄漏劃重點(diǎn)這是個(gè)考點(diǎn)意外的全局變量未定義的變量會(huì)在全局對(duì)象創(chuàng)建一個(gè)新變量,如下。因?yàn)槔习姹镜氖菬o(wú)法檢測(cè)節(jié)點(diǎn)與代碼之間的循環(huán)引用,會(huì)導(dǎo)致內(nèi)存泄漏。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開(kāi)始前端進(jìn)階的第一期,本周的主題...
摘要:今天這篇文章我們來(lái)看看一道必會(huì)面試題,即如何實(shí)現(xiàn)一個(gè)深拷貝。木易楊注意這里使用上面測(cè)試用例測(cè)試一下一個(gè)簡(jiǎn)單的深拷貝就完成了,但是這個(gè)實(shí)現(xiàn)還存在很多問(wèn)題。 引言 上篇文章詳細(xì)介紹了淺拷貝 Object.assign,并對(duì)其進(jìn)行了模擬實(shí)現(xiàn),在實(shí)現(xiàn)的過(guò)程中,介紹了很多基礎(chǔ)知識(shí)。今天這篇文章我們來(lái)看看一道必會(huì)面試題,即如何實(shí)現(xiàn)一個(gè)深拷貝。本文會(huì)詳細(xì)介紹對(duì)象、數(shù)組、循環(huán)引用、引用丟失、Symbo...
閱讀 1242·2021-11-25 09:43
閱讀 1349·2021-09-26 09:55
閱讀 2410·2021-09-10 11:20
閱讀 3380·2019-08-30 15:55
閱讀 1455·2019-08-29 13:58
閱讀 1180·2019-08-29 12:36
閱讀 2354·2019-08-29 11:18
閱讀 3420·2019-08-26 11:47