首頁  >  文章  >  web前端  >  淺談javascriptfor in 和 for each in的差別_javascript技巧

淺談javascriptfor in 和 for each in的差別_javascript技巧

WBOY
WBOY原創
2016-05-16 16:02:34998瀏覽

區別一:

        for in是javascript 1.0 發佈的。
        for each in是作為E4X標準的一部分在javascript 1.6中發布的,而它不是ECMAScript標準的一部分。
        這將表示有各種瀏覽器的相容性問題。 for each in,對許多瀏覽器都不支援的。例如是不支援IE6,IE7,IE8等瀏覽器的。

區別二:

    例:  var 長方形= {  高:"15",  寬:"25"  };

  for (var i in 长方形){
    alert( i + "," + 长方形[i] );
  }

    結果依序為:  高,15  ;    寬,25 ;

  for each (var i in 长方形){
    alert( i + "," + 长方形[i] );
  }

    結果依序為: 15, undefined ;    25, undefined;

    兩種遍歷方法的變數i的值是不同的,for each in無法取得物件的屬性名,只能取得到屬性值。

    最後總結使用建議:

    (1)遍歷普通數組,建議使用原生的遍歷方法for,不要貪圖方便,因為for in 和for each in均存在瀏覽器的兼容問題,不能保證它們對數組的遍歷順序(如果對順序的不作要求的話,可以使用for in ,但本人不建議),有興趣話,可以閱讀的下一篇文章《關於js中for in的缺陷淺析》。

    (2)遍歷對象,由於for沒辦法提供理想的遍歷,因而只能選擇其他方法。這裡建議使用for in ,從上面講解的區別,for in比for each 更具優勢,for in能獲取索引和屬性值,而for each只能獲取屬性值,而且for each在很多低版本的瀏覽器是不支援。

以上所述就是本文的全部內容了,希望大家能夠喜歡

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn