第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

【金秋打卡】第20天for...of的用法

標(biāo)簽:
前端工具

一、课程名称:前端工程师2022版

二、课程章节:ES6语法扩展-Iterator遍历器与for...of循环

三、课程讲师:Alex

四、课程内容

(一)for...of的基本用法

(1)认识for...of:注意,for...of循环只会遍历出那些done为false时,对应的value值

 https://img2.sycdn.imooc.com/636d92e40001475b04200237.jpg

      const arr = [1, 2, 3];

      // 使用for of循环

      for (const item of arr) { console.log(item); }

(2)与break、continue一起使用

      const arr = [1, 2, 3];

      for (const item of arr) {

        if (item === 2) {

          // break;

          continue;

        }

        console.log(item);

      }

(3)在for...of中取得数组的索引

1)keys()得到的时索引的可遍历对象,可以遍历出索引值

      for (const key of arr.keys()) {

        console.log(key);

      }

https://img1.sycdn.imooc.com/636d930e0001f7d304200237.jpg

2)values()得到的是值的可遍历对象,可以遍历出值

      // 获取索引值,但是这和直接遍历没有什么区别

      for (const value of arr.values()) {

        console.log(value);

      }

      for (const item of arr) {

        console.log(item);

      }

3)entries()得到的是索引+值组成的数组的可遍历对象 

    // 在一次for循环中同时遍历出索引和值

    for (const entries of arr.entries()) {

        console.log(entries);

      }

    // 联系解构赋值,可以直接解构出来

    for (const [index,value] of arr.entries()) {

        console.log(index,value);

      }

https://img2.sycdn.imooc.com/636d93400001e8c404200237.jpg

(二)认识可遍历

(1)什么是可遍历

只要有Symbol.iterator方法,并且这个方法可以生成可遍历对象,就是可遍历的,只要可遍历,就可以使用for...of循环来统一遍历

(2)原生可遍历的有哪些

数组、字符串、Set、Map、arguments、NodeList

//数组   

for(const item of [1,2,3]){

     console.log(item);

   }

  // 字符串

   for (const item of "hi") {

     console.log(item);

   }

 //Set

   for (const item of new Set([1, 2])) {

     console.log(item);

   }

  //NodeList

   for (const elem of document.querySelectorAll("p")) {

     console.log(elem);

     elem.style.color = "red";

   }

(3)非原生可遍历有哪些

1)一般对象

      // 一般的对象

      const person = { sex: "male", age: 18 };

      console.log(person[Symbol.iterator]()); //报错,所以不可以使用for of

      // for(const item of person){}

      // 想要遍历对象,有两种方法,一种是使用for in循环,另一种是给对象添加iterator方法

      // {next()}{value,done}

      person[Symbol.iterator] = () => {

        let index = 0;

        return {

          next() {

            index++;

            if (index === 1) {

              return {

                value: person.age,

                done: false,

              };

            } else if (index === 2) {

              return {

                value: person.sex,

                done: false,

              };

            } else {

              return {

                done: true,

              };

            }

          },

        };

      };

      for (const item of person) {

        console.log(item);

      }

2)有length和索引属性的对象

    obj[Symbol.iterator]=Array.prototype[Symbol.iterator]

五、课程心得

今天学习了for...of用法、可遍历等相关知识,对Iterator的理解进一步加深,昨天学习上的问题得到了解决,继续加油!


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消