ES6筆記

ES6

ES5常見的數(shù)組方法(迭代/遍歷數(shù)組)

  1. forEach() : 缺點(diǎn): 不能使用break和continue
  2. map() : (映射):遍歷數(shù)據(jù)并返回一個(gè)新的數(shù)組,對(duì)數(shù)的處理會(huì)返回原先對(duì)應(yīng)的位置
  3. filter() : 過濾,返回復(fù)合條件的數(shù)據(jù) return true,則是吧當(dāng)前真的數(shù)據(jù) 存入新的數(shù)組 否則不存
  4. some() : 如果有復(fù)合條件的記錄含鳞, 則返回真添吗,否則返回假
  5. every(): 如果每一個(gè)數(shù)據(jù)都復(fù)合條件媒峡,則返回真大诸,否則返回假
  6. reduce(): 常用來實(shí)現(xiàn)累加的
  let arr = [300,600,200,100]
  // 首次調(diào)用時(shí),sum是第一個(gè)元素,val是第二個(gè)元素等太,index是1
  // 再次調(diào)用時(shí),sum是上一次return的結(jié)果蛮放,val依次是下一個(gè)元素
  let result = arr.reduce((sum,val,index)=>{
      console.log(sum,val,index);
      return sum + val;
  })
  console.log(result);

  //第二個(gè)參數(shù)是sum的初值缩抡,則第一次調(diào)用 時(shí),val是第一個(gè)元素
  let result = data.list.reduce((sum,val,index)=>{
      return sum + val.price;
  },0)
  console.log(result);

let - const

ES5作用域:全局作用域包颁,函數(shù)作用域(局部作用域)
ES6
let: (1)定義塊級(jí)作用域 {} (2)在同一塊級(jí)作用域不能重復(fù)聲明
const: 定義常亮 (1)聲明必須負(fù)值 (2)不允許更改

箭頭函數(shù)

箭頭函數(shù)的語(yǔ)法 : ()=>{}

  1. 箭頭函數(shù)中的this指向:指向定義它的函數(shù)的this
  2. 沒有參數(shù)可以寫 ()=>{} ; -- 有一個(gè)參數(shù)可以寫 item=>{}; -- 只有一條return語(yǔ)句瞻想,可以不寫{} let fun = ()=>1;

類和繼承

  class Parent {
      // 等同es5中的構(gòu)造函數(shù)
      constructor(name,age){
          this.name = name;
          this.age = age
      }
      //等同es5中向原型對(duì)象添加方法
      run(){
          console.log("run")
      }
  }

  class Child extends Parent{
      constructor(name,age,grade){
          //相當(dāng)于調(diào)用父類的構(gòu)造函數(shù)
          super(name,age)
          this.grade = grade;
      }
      study(){
          console.log('study')
      }
  }

  let c1 = new Child('Jack',23,'六');
  console.log(c1)

ES6對(duì)象字面量的簡(jiǎn)寫 屬性名和屬性一樣的話可以直接寫obj{name,age}
模板字符串 模板字符串的寫法和拼接: <p>內(nèi)容:${變量}</p>
結(jié)構(gòu)賦值 : 對(duì)象的 let {name,age} = obj 數(shù)組的 let [num1,num2] = arr
展開運(yùn)算符: [...arr1] 等價(jià)于: 把a(bǔ)rr1中的元素一個(gè)一個(gè)拿出來,放到新的數(shù)組中

默認(rèn)參數(shù)和剩余參數(shù)
ES5的默認(rèn)參數(shù): function(a){ a = a || 12 }
ES6的默認(rèn)參數(shù): 可以直接在參數(shù)的后面加上 function(a=12){} ---有是有多個(gè)參數(shù)的話默然參數(shù)必須寫在最后面

剩余參數(shù)

  // ===================剩余(rest)參數(shù): 得到所有的實(shí)參娩嚼,等同于es5中 arguments,
  function total(...a){
      // ES5: 
      // console.log(arguments)  //偽數(shù)組

      // args: 真數(shù)組
      // console.log(args instanceof Array);
      console.log(a);
  }
  total(23,45)

Symbol數(shù)據(jù)類型

Symbol: 獲取唯一不會(huì)重復(fù)的變量蘑险,是ES6新增的數(shù)據(jù)類型

set

set: 是ES6中新增的集合的數(shù)據(jù)類型,用來存放數(shù)組岳悟。但是佃迄,數(shù)組的元素不允許重復(fù)
set 可以用for..each 遍歷 不能使用數(shù)組對(duì)象的方法map()...
ES6使用set的數(shù)組去重

    let arr = [1,2,3,5,1,2,1]
    let result = [...new set(arr)]

    // set的聲明:
    let set = new Set([1,2,3,4]);

for..of語(yǔ)句

遍歷語(yǔ)句:

  1. forEach: (1) 可以遍歷對(duì)象以外的集合 (數(shù)組,Set) (2)不能使用break和continue
  2. for...in (1)遍歷對(duì)象 (2)不能直接訪問對(duì)象的屬性值
  3. ES6新增的for...of: (1)可以用于部署了Symbol.iterator的對(duì)象(自定義的對(duì)象不能使用for...of,但大部分原生的數(shù)據(jù)集合都可以使用)
    (2)可以使用break和continue

iterator迭代器

  1. 是一個(gè)函數(shù)
  2. 可以統(tǒng)一處理所有集合數(shù)據(jù)
  3. 返回一個(gè)next方法贵少,調(diào)用next之后會(huì)返回一個(gè)包含兩個(gè)屬性的對(duì)象 {value:'',done:true}
  4. iterator是專供for...of來消費(fèi)的

Object.keys方法

Object.keys(): 返回指定對(duì)象所有屬性名組成的數(shù)組

Map類型的數(shù)據(jù)

Map: 類似與對(duì)象呵俏,用來存儲(chǔ)鍵值對(duì)。
對(duì)象只能使用字符串作為屬性名春瞬,而Map可以使用任意類型的數(shù)據(jù)做為屬性名

  let map = new Map([["a",1],["b",2]])  //map聲明 輸出{"a"=>1,"b"=>2}
  • map的Apl

    屬性: size 和length一樣是代表長(zhǎng)度的
    方法:

    • set: 添加 map.set("name","alice"); 給map添加了name=>alice
    • get: 讀取 console.log(map.get("a")) 讀取map里面a的屬性 輸出 1
    • has: 查找有沒有該屬性 有則為真 則為假
    • delete: 刪除某個(gè)屬性
    • clear: 清除所有屬性
    //============================================for...of遍歷
        // 獲取屬性名
        // for(let key of map.keys()){
        //     console.log(key)
        // }

        // 獲取值
        // for(let val of map.values()){
        //     console.log(val)
        // }

        // 同時(shí)獲取鍵值
        // for(let i of map){
        //     console.log(i)
        // }
        // 等同于
        // for(let i of map.entries()){
        //     console.log(i[0])
        //     console.log(i[1])
        // }

        // for(let [key,value] of map.entries()){
        //     console.log(key)
        //     console.log(value)
        // }


        // let obj = {
        //     name: 1,
        //     age: 2
        // }
        // delete obj.age
        // console.log(obj)

Promise


promise是什么

1柴信、主要用于異步計(jì)算
2、可以將異步操作隊(duì)列化宽气,按照期望的順序執(zhí)行随常,返回符合預(yù)期的結(jié)果
3潜沦、可以在對(duì)象之間傳遞和操作promise,幫助我們處理隊(duì)列

為什么會(huì)有promise绪氛?

為了避免界面凍結(jié)(任務(wù))
  • 同步:假設(shè)你去了一家飯店唆鸡,找個(gè)位置,叫來服務(wù)員枣察,這個(gè)時(shí)候服務(wù)員對(duì)你說争占,對(duì)不起我是“同步”服務(wù)員,我要服務(wù)完這張桌子才能招呼你序目。那桌客人明明已經(jīng)吃上了臂痕,你只是想要個(gè)菜單,這么小的動(dòng)作猿涨,服務(wù)員卻要你等到別人的一個(gè)大動(dòng)作完成之后握童,才能再來招呼你,這個(gè)便是同步的問題:也就是“順序交付的工作1234叛赚,必須按照1234的順序完成”澡绩。

  • 異步:則是將耗時(shí)很長(zhǎng)的A交付的工作交給系統(tǒng)之后,就去繼續(xù)做B交付的工作俺附,肥卡。等到系統(tǒng)完成了前面的工作之后,再通過回調(diào)或者事件事镣,繼續(xù)做A剩下的工作步鉴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蛮浑,隨后出現(xiàn)的幾起案子唠叛,更是在濱河造成了極大的恐慌,老刑警劉巖沮稚,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艺沼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蕴掏,警方通過查閱死者的電腦和手機(jī)障般,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盛杰,“玉大人挽荡,你說我怎么就攤上這事〖垂” “怎么了定拟?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)逗嫡。 經(jīng)常有香客問我青自,道長(zhǎng)株依,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任延窜,我火速辦了婚禮恋腕,結(jié)果婚禮上逆瑞,老公的妹妹穿的比我還像新娘荠藤。我一直安慰自己,他們只是感情好获高,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布哈肖。 她就那樣靜靜地躺著,像睡著了一般谋减。 火紅的嫁衣襯著肌膚如雪牡彻。 梳的紋絲不亂的頭發(fā)上扫沼,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天出爹,我揣著相機(jī)與錄音,去河邊找鬼缎除。 笑死严就,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的器罐。 我是一名探鬼主播梢为,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼轰坊!你這毒婦竟也來了铸董?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤肴沫,失蹤者是張志新(化名)和其女友劉穎粟害,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颤芬,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悲幅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了站蝠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汰具。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖菱魔,靈堂內(nèi)的尸體忽然破棺而出留荔,到底是詐尸還是另有隱情,我是刑警寧澤澜倦,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布聚蝶,位于F島的核電站拔疚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏既荚。R本人自食惡果不足惜稚失,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恰聘。 院中可真熱鬧句各,春花似錦、人聲如沸晴叨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)兼蕊。三九已至初厚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孙技,已是汗流浹背辅髓。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工卿泽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓杀赢,卻偏偏與公主長(zhǎng)得像娄猫,于是被迫代替她去往敵國(guó)和親卓起。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兴蒸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359