關於js中for in和foreach in的區別


js 中for in 和foreach in的區別
兩個的作用都用來遍歷對象,但為什么有了for in語句了還要foreach in語句呢,后來看了下foreach in開發的文檔,foreach in是作為E4X標准的一部分在javascript 1.6中發布的,而且E4X不是ECMAScript標准的一部分。

foreach…in語句已被廢棄,E4X中的大部分特性已被刪除,但考慮到向后兼容,foreach…in只會被禁用而不會被刪除,可以使用ES6中新的for…of語句來代替。


var 小青年 = { 身高:"181CM", 體重:"62公斤", 年齡:23 }; for (var i in 小青年){ document.write("i = " + i + "..................小青年[i] = " + 小青年[i] + "<br>"); } /* 結果 i = 身高..................小青年毛[i] = 181CM i = 體重..................小青年[i] =62公斤 i = 年齡..................小青年[i] = 23 */ foreach (var i in 小青年){ document.write("i = " + i + "..................小青年[i] = " + 小青年[i] + "<br>"); } /* 結果 i = 181CM..................小青年[i] = undefined i = 62公斤..................小青年[i] = undefined i = 23..................小青年[i] = undefined */

注意變量i的值是不一樣的,for each in無法獲得對象的屬性名,只能獲取到屬性值

如果你想遍歷對象,建議還是使用for in
1,for in在遍歷對象傷還是比for each in功能更加強大for in不僅能遍歷處所有屬性名和屬性值,foreach in只能遍歷出屬性值
2,for in是javascript 1.0就出來的語法,foreach in是javascript 1.6才出來的語法,很多瀏覽器是 不支持的,比如IE6,7,8是不支持的,所以還是推薦使用for in


同時兩者都能實現對數組的遍歷
建議大家在遍歷數組時,推薦不要使用for in語句和for each in語句,因為它們兩無法保證遍歷數組的順序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM