• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    JavaScript中for..in循環陷阱介紹_javascript技巧

    來源:懂視網 責編:小采 時間:2020-11-27 21:15:29
    文檔

    JavaScript中for..in循環陷阱介紹_javascript技巧

    JavaScript中for..in循環陷阱介紹_javascript技巧:大家都知道在JavaScript中提供了兩種方式迭代對象: (1)for 循環; (2)for..in循環; 使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來.... javascript
    推薦度:
    導讀JavaScript中for..in循環陷阱介紹_javascript技巧:大家都知道在JavaScript中提供了兩種方式迭代對象: (1)for 循環; (2)for..in循環; 使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來.... javascript

    大家都知道在JavaScript中提供了兩種方式迭代對象:
    (1)for 循環;
    (2)for..in循環;
    使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來....
    javascript提供了一種特殊的循環(也就是for .. in循環),用來迭代對象的屬性或數組的每個元素,for...in循環中的循環計數器是字符串,而不是數字。它包含當前屬性的名稱或當前數組元素的索引。
    案例一:
    代碼如下:
    //使用for..in循環遍歷對象屬性
    varperson={
    name: "Admin",
    age: 21,
    address:"shandong"
    };
    for(vari in person){
    console.log(i);
    }

    執行結果為:
    name
    age
    address
    當遍歷一個對象的時候,變量 i 也就是循環計數器 為 對象的屬性名
    代碼如下:
    //使用for..in循環遍歷數組
    vararray = ["admin","manager","db"]
    for(vari in array){
    console.log(i);
    }

    執行結果:
    0
    1
    2
    當遍歷一個數組的時候,變量 i 也就是循環計數器 為 當前數組元素的索引
    案例二:
    但是,現在看來for .. in循環還挺好用啊,不過,別高興太早,看看下面的例子:
    代碼如下:
    var array =["admin","manager","db"];
    //給Array的原型添加一個name屬性
    Array.prototype.name= "zhangsan";
    for(var i in array){
    alert(array[i]);
    }

    運行結果:
    admin
    manager
    db
    zhangsan
    咦,奇觀了,怎么平白無故的冒出來一個zhangsan
    現在,再看看使用 for循環會怎樣?
    代碼如下:
    vararray = ["admin","manager","db"];
    //給Array的原型添加一個name屬性
    Array.prototype.name = "zhangsan";
    for(var i =0 ; ialert(array[i]);
    };

    運行結果:
    admin
    manager
    db
    哦, 現在明白了,for..in循環會把某個類型的原型(prototype)中方法與屬性給遍歷出來,所以這可能會導致代碼中出現意外的錯誤。為了避免這個問題,我們可以使用對象的hasOwnProperty()方法來避免這個問題,如果對象的屬性或方法是非繼承的,那么hasOwnProperty() 方法返回true。即這里的檢查不涉及從其他對象繼承的屬性和方法,只會檢查在特定對象自身中直接創建的屬性。
    案例三:
    代碼如下:
    vararray = ["admin","manager","db"];
    Array.prototype.name= "zhangshan";
    for(vari in array){
    //如果不是該對象自身直接創建的屬性(也就是該屬//性是原型中的屬性),則跳過顯示
    if(!array.hasOwnProperty(i)){
    continue;
    }
    alert(array[i]);
    }

    運行結果:
    admin
    manager
    db
    一切又完好如初,哎,不知道,同志們看完有什么感受,是不是有種“撥開云霧見晴天”的感覺啊,呵呵

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    JavaScript中for..in循環陷阱介紹_javascript技巧

    JavaScript中for..in循環陷阱介紹_javascript技巧:大家都知道在JavaScript中提供了兩種方式迭代對象: (1)for 循環; (2)for..in循環; 使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來.... javascript
    推薦度:
    標簽: in 介紹 js
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 思思99热在线观看精品| 国产精品成人国产乱一区| 国内精品在线视频| 中文字幕精品亚洲无线码一区应用| 日本精品中文字幕| 精品国偷自产在线| 色哟哟国产精品免费观看| 9久热这里只有精品| 国产成人精品一区二区秒拍| 亚洲欧美日韩久久精品| 国产欧美一区二区精品性色99 | 成人精品在线视频| 亚洲精品国产精品乱码不99| 久久精品无码免费不卡| 国产精品 视频一区 二区三区| 国产成人精品免费视频大| 精品无人码麻豆乱码1区2区| 中国大陆精品视频XXXX| 欧美精品福利视频一区二区三区久久久精品 | 国产这里有精品| 99久久精品这里只有精品| 国产在线精品一区二区不卡| 国产精品丝袜一区二区三区| 日韩精品无码久久久久久| 综合精品欧美日韩国产在线| 欧美日韩精品系列一区二区三区| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 自拍偷自拍亚洲精品被多人伦好爽| 欧美在线精品一区二区三区| 精品91自产拍在线观看| 国产欧美在线观看精品一区二区| 国产精品va在线观看无码| 国产福利精品在线观看| 国产精品免费看久久久香蕉| 国产精品第六页| 国产精品自产拍在线18禁| 国产玖玖玖九九精品视频| 国产精品成| 久久99精品久久久久久水蜜桃| 久久久久国产精品麻豆AR影院| 老湿亚洲永久精品ww47香蕉图片|