欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過實例解析JavaScript for in及for of區(qū)別

 更新時間:2020年06月15日 11:03:23   作者:ssaylo  
這篇文章主要介紹了通過實例解析JavaScript for in及for of區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

對數(shù)組的遍歷大家最常用的就是for循環(huán),ES5的話也可以使用forEach,ES5具有遍歷數(shù)組功能的還有map、filter、some、every、reduce、reduceRight等,只不過他們的返回結(jié)果不一樣。但是使用foreach遍歷數(shù)組的話,使用break不能中斷循環(huán),使用return也不能返回到外層函數(shù)。

那么接下來我們一起看一下for in 和for of 的區(qū)別吧。

for in

看一個簡單的例子

//for in 應用于數(shù)組
Array.prototype.sayHello = function(){
  console.log("Hello")
}
Array.prototype.str = 'world';
var myArray = [1,2,10,30,100];
myArray.name='數(shù)組';
 
for(let index in myArray){
  console.log(index);
}
//輸出結(jié)果如下
0,1,2,3,4,name,str,sayHello
 
//for in 應用于對象中
Object.prototype.sayHello = function(){
  console.log('Hello');
}
Obeject.prototype.str = 'World';
var myObject = {name:'zhangsan',age:100};
 
for(let index in myObject){
  console.log(index);
}
//輸出結(jié)果
name,age,str,sayHello
//首先輸出的是對象的屬性名,再是對象原型中的屬性和方法,
//如果不想讓其輸出原型中的屬性和方法,可以使用hasOwnProperty方法進行過濾
for(let index in myObject){
  if(myObject.hasOwnProperty(index)){
    console.log(index)
  }
}
//輸出結(jié)果為
name,age
//你也可以用Object.keys()方法獲取所有的自身可枚舉屬性組成的數(shù)組。
Object.keys(myObject)

可以看出for in 應用于數(shù)組循環(huán)返回的是數(shù)組的下標和數(shù)組的屬性和原型上的方法和屬性,而for in應用于對象循環(huán)返回的是對象的屬性名和原型中的方法和屬性。

使用for in 也可以遍歷數(shù)組,但是會存在以下問題:

1.index索引為字符串型數(shù)字,不能直接進行幾何運算

2.遍歷順序有可能不是按照實際數(shù)組的內(nèi)部順序

3.使用for in會遍歷數(shù)組所有的可枚舉屬性,包括原型。例如上栗的原型方法method和name屬性

Object.prototype.sayHello = function(){
  console.log('Hello');
}
var myObject = {
  name:'zhangsan',
  age:10
}
 
for(let key of myObject){
  consoloe.log(key);
}
//輸出結(jié)果
//typeError
 
Array.prototype.sayHello = function(){
  console.log("Hello");
}
var myArray = [1,200,3,400,100];
for(let key of myArray){
  console.log(key);
}
//輸出結(jié)果
1,200,3,400,100

for in遍歷的是數(shù)組的索引(即鍵名),而for of遍歷的是數(shù)組元素值。 所以for in更適合遍歷對象,不要使用for in遍歷數(shù)組。JavaScript for in 和 for of 的區(qū)別

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 原生JavaScrpit中異步請求Ajax實現(xiàn)方法

    原生JavaScrpit中異步請求Ajax實現(xiàn)方法

    這篇文章主要介紹了原生JavaScrpit中異步請求Ajax實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • 深入理解JavaScript?變量對象

    深入理解JavaScript?變量對象

    變量對象是與執(zhí)行上下文相關(guān)的數(shù)據(jù)作用域,存儲了在上下文中定義的變量和函數(shù)聲明,本文主要介紹了JavaScript?變量對象,具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • JavaScript事件流之事件處理和傳播機制深入理解

    JavaScript事件流之事件處理和傳播機制深入理解

    本文將詳細介紹JavaScript事件流的發(fā)展流程、屬性以及應用場景,并提供一些代碼示例和引用資料,幫助讀者深入理解并應用這一重要的前端技術(shù),希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 整理關(guān)于Bootstrap導航的慕課筆記

    整理關(guān)于Bootstrap導航的慕課筆記

    這篇文章主要為大家整理了關(guān)于Bootstrap導航的慕課筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • JS實現(xiàn)模態(tài)框拖拽動態(tài)效果

    JS實現(xiàn)模態(tài)框拖拽動態(tài)效果

    這篇文章主要為大家詳細介紹了JS實現(xiàn)模態(tài)框拖拽動態(tài)效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • window.location.href IE下跳轉(zhuǎn)失效的解決方法

    window.location.href IE下跳轉(zhuǎn)失效的解決方法

    這篇文章主要介紹了window.location.href IE下跳轉(zhuǎn)失效的解決方法,需要的朋友可以參考下
    2014-03-03
  • 關(guān)于innerHTML后丟失動態(tài)綁定的EVENT問題解決方法

    關(guān)于innerHTML后丟失動態(tài)綁定的EVENT問題解決方法

    用innerHTML取出一段內(nèi)容后再innerHTML回去,那么原來動態(tài)綁定的事件就會丟失,下面與大家分享下解決方法,感興趣的朋友可以參考下哈
    2013-05-05
  • javascript中導出與導入實現(xiàn)模塊化管理教程

    javascript中導出與導入實現(xiàn)模塊化管理教程

    這篇文章主要給大家介紹了關(guān)于javascript中導出與導入實現(xiàn)模塊化管理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • javascript實現(xiàn)小型區(qū)塊鏈功能

    javascript實現(xiàn)小型區(qū)塊鏈功能

    這篇文章主要介紹了javascript實現(xiàn)小型區(qū)塊鏈功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • JavaScrip實現(xiàn)PHP print_r的數(shù)功能(三種方法)

    JavaScrip實現(xiàn)PHP print_r的數(shù)功能(三種方法)

    PHP print_r的函數(shù)很好用,可以用來打印數(shù)組、對象等的結(jié)構(gòu)與數(shù)據(jù),可惜JavaScript并沒有原生提供類似的函數(shù)。不過我們可以試著自己來實現(xiàn)這個函數(shù),下面提供一些方法與思路
    2013-11-11

最新評論