最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

for?of?和?for?in?的區(qū)別介紹

 更新時間:2022年12月19日 10:21:51   作者:ppp1111  
這篇文章主要介紹了for?of?和?for?in?的區(qū)別,for?of?和?for?in都是用來遍歷的屬性,本文重點介紹下for?of?和?for?in?的區(qū)別,需要的朋友可以參考下

1.共性

for offor in都是用來遍歷的屬性

2.區(qū)別

  • for...in 語句用于遍歷數(shù)組或者對象的屬性(對數(shù)組或者對象的屬性進(jìn)行循環(huán)操作)。
  • for in得到對對象的key或數(shù)組,字符串的下標(biāo)
  • for offorEach一樣,是直接得到值
  • for of不能用于對象

1.兩者對比例子(遍歷對象)

const obj = {
        a: 1,
        b: 2,
        c: 3
    }
    for (let i in obj) {
        console.log(i)    //輸出 : a   b  c
    }
    for (let i of obj) {
        console.log(i)    //輸出: Uncaught TypeError: obj is not iterable 報錯了
    }

說明: for infor of 對一個obj對象進(jìn)行遍歷,for in 正常的獲取了對象的 key值,分別打印 a、b、c,而 for of卻報錯了。

2.兩者對比例子(遍歷數(shù)組)

   const arr = ['a', 'b', 'c']
   // for in 循環(huán)
   for (let i in arr) {
       console.log(i)         //輸出  0  1  2
   }
   
   // for of
   for (let i of arr) {
       console.log(i)         //輸出  a   b   c
   }

3.特點

①. for in 特點

  • for … in 循環(huán)返回的值都是數(shù)據(jù)結(jié)構(gòu)的 鍵值名(即下標(biāo))。
  • 遍歷對象返回的對象的key值,遍歷數(shù)組返回的數(shù)組的下標(biāo)(key)。
  • for … in 循環(huán)不僅可以遍歷數(shù)字鍵名,還會遍歷原型上的值和手動添加的其他鍵。
  • 特別情況下, for … in 循環(huán)會以看起來任意的順序遍歷鍵名
  • for in 的 常規(guī)屬性和 排序?qū)傩?/li>
  • 在ECMAScript規(guī)范中定義了 「數(shù)字屬性應(yīng)該按照索引值??升序排列,字符串屬性根據(jù)創(chuàng)建時的順序升序排列?!乖谶@?我們把對象中的數(shù)字屬性稱為 「排序?qū)傩浴?,在V8中被稱為 elements,字符串屬性就被稱為 「常規(guī)屬性」, 在V8中被稱為 properties。
function Foo() {
 this[100] = 'test-100'
 this[1] = 'test-1'
 this["B"] = 'bar-B'
 this[50] = 'test-50'
 this[9] = 'test-9'
 this[8] = 'test-8'
 this[3] = 'test-3'
 this[5] = 'test-5'
 this["A"] = 'bar-A'
 this["C"] = 'bar-C'
}
var bar = new Foo()
for(key in bar){
 console.log(`index:${key} value:${bar[key]}`)
}
//輸出:
index:1 value:test-1
index:3 value:test-3
index:5 value:test-5
index:8 value:test-8
index:9 value:test-9
index:50 value:test-50
index:100 value:test-100
index:B value:bar-B
index:A value:bar-A
index:C value:bar-C

總結(jié)一句: for in 循環(huán)特別適合遍歷對象。

①. for of

  • for of 循環(huán)用來獲取一對鍵值對中的值,而 for in 獲取的是 鍵名
  • 一個數(shù)據(jù)結(jié)構(gòu)只要部署了 Symbol.iterator 屬性, 就被視為具有 iterator接口, 就可以使用 for of循環(huán)。
  • for of 不同與 forEach, 它可以與 break、continue和return 配合使用,也就是說 for of 循環(huán)可以隨時退出循環(huán)。

知識點補充:

簡述for in 和 for of 的區(qū)別

1、推薦在循環(huán)對象屬性的時候使用 for...in,在遍歷數(shù)組的時候的時候使用 for...of 
2、for...in 循環(huán)出的是 key,for...of 循環(huán)出的是 value 
3、注意,for...of 是 ES6 新引入的特性。修復(fù)了 ES5 引入的 for...in 的不足 
4、for...of 不能循環(huán)普通的對象(如通過構(gòu)造函數(shù)創(chuàng)造的),需要通過和 Object.keys()搭配使用

 for in遍歷數(shù)組的毛?。?/strong>

1.index索引為字符串型數(shù)字,不能直接進(jìn)行幾何運算
2.遍歷順序有可能不是按照實際數(shù)組的內(nèi)部順序
3.使用for in會遍歷數(shù)組所有的可枚舉屬性,包括原型。例如上栗的原型方法method和name屬性
所以for in更適合遍歷對象,不要使用for in遍歷數(shù)組。

那么除了使用for循環(huán),如何更簡單的正確的遍歷數(shù)組達(dá)到我們的期望呢(即不遍歷method和name),ES6中的for of更勝一籌.

遍歷對象

遍歷對象 通常用for in來遍歷對象的鍵名

到此這篇關(guān)于for of 和 for in 的區(qū)別的文章就介紹到這了,更多相關(guān)for of 和 for in 的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript中標(biāo)識符提升問題

    JavaScript中標(biāo)識符提升問題

    標(biāo)識符指的是javascript中定義的符號,標(biāo)識符可以由任意順序的大小寫字母、數(shù)字、下劃線和美元符號組成,但標(biāo)識符不能以數(shù)字開頭,也不能是javascript中的保留關(guān)鍵字。并且要注意,javascript是嚴(yán)格區(qū)分大小寫的。
    2015-06-06
  • 用CSS+JS實現(xiàn)的進(jìn)度條效果效果

    用CSS+JS實現(xiàn)的進(jìn)度條效果效果

    用CSS+JS實現(xiàn)的進(jìn)度條效果效果...
    2007-06-06
  • JavaScript中的console.profile()函數(shù)詳細(xì)介紹

    JavaScript中的console.profile()函數(shù)詳細(xì)介紹

    這篇文章主要介紹了JavaScript中的console.profile()函數(shù)詳細(xì)介紹,本文講解了console.profile()函數(shù)的瀏覽器支持情況、console.profile()的使用、Firebug中Profile按鈕的使用等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • bootstrap實現(xiàn)的自適應(yīng)頁面簡單應(yīng)用示例

    bootstrap實現(xiàn)的自適應(yīng)頁面簡單應(yīng)用示例

    這篇文章主要介紹了bootstrap實現(xiàn)的自適應(yīng)頁面簡單應(yīng)用,結(jié)合具體實例形式分析了基于bootstrap的列表布局結(jié)構(gòu)頁面實現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-03-03
  • 微信小程序?qū)崿F(xiàn)日歷效果

    微信小程序?qū)崿F(xiàn)日歷效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)日歷效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • js實現(xiàn)輪播圖特效

    js實現(xiàn)輪播圖特效

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)輪播圖特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • JavaScript之DOM_動力節(jié)點Java學(xué)院整理

    JavaScript之DOM_動力節(jié)點Java學(xué)院整理

    由于HTML文檔被瀏覽器解析后就是一棵DOM樹,要改變HTML的結(jié)構(gòu),就需要通過JavaScript來操作DOM。始終記住DOM是一個樹形結(jié)構(gòu)。
    2017-07-07
  • JavaScript 常用函數(shù)庫詳解

    JavaScript 常用函數(shù)庫詳解

    在WEB開發(fā)中,javascript提供了許多函數(shù)供開發(fā)人員使用,這些函數(shù)在Ajax流行前足夠了,但要構(gòu)建一個交互性強些的應(yīng)用恐怕就麻煩了。
    2009-10-10
  • javascript回到頂部特效

    javascript回到頂部特效

    這篇文章主要為大家詳細(xì)介紹了javascript回到頂部特效,具有一定的參考價值,感興趣的朋友可以參考一下
    2016-07-07
  • Webpack框架核心概念(知識點整理)

    Webpack框架核心概念(知識點整理)

    webpack 是一個現(xiàn)代 JavaScript 應(yīng)用程序的模塊打包器(module bundler)。這篇文章主要介紹了Webpack框架核心概念(知識點整理),需要的朋友可以參考下
    2017-12-12

最新評論

苍山县| 册亨县| 罗江县| 永昌县| 江北区| 罗源县| 萨嘎县| 德阳市| 张北县| 汉川市| 哈尔滨市| 南充市| 昌都县| 噶尔县| 合山市| 连江县| 东乌珠穆沁旗| 淮南市| 肥乡县| 基隆市| 镇原县| 沙田区| 修武县| 中西区| 巴马| 上高县| 达州市| 安康市| 房山区| 德清县| 海丰县| 巍山| 东丰县| 青岛市| 翁源县| 荔浦县| 洛隆县| 博白县| 临海市| 茌平县| 介休市|