javascript 中 for..in 和 for every..in 有什么区别?
JavaScript 中的 for..in 和 foreach..in 语句有什么区别? 是否存在我不知道的细微差别,或者它是否相同但每个浏览器都有不同的名称?
What is the difference between for..in and for each..in statements in javascript?
Are there subtle difference that I don't know of or is it the same and every browser has a different name for it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
“for every...in” 在指定对象属性的所有值上迭代指定变量。
示例:
来源
“for... in" 以任意顺序迭代对象的所有属性上的指定变量。
示例:
来源
注释 03.2013,
对于每个... in
循环已弃用。 MDN 推荐的“新”语法是对于...的
。"for each...in" iterates a specified variable over all values of the specified object's properties.
Example:
Source
"for...in" iterates a specified variable over all properties of an object, in arbitrary order.
Example:
Source
Note 03.2013,
for each... in
loops are deprecated. The 'new' syntax recommended by MDN isfor... of
.这个演示有望说明其中的差异。
This demonstration should hopefully illustrate the difference.
阅读优秀的 MDC 文档。
第一个用于正常循环集合并任意改变对象的属性。
后者允许您循环遍历对象的属性。
Read the excellent MDC documentation.
The first is for normal looping over collections and arbitrarily over an object's properties.
The latter allows you to loop over an object's properties.
除了其他答案之外,请记住
foreach...in
不是 ECMA 标准的一部分,也不包含在 即将推出的版本 3.1。 它是在 JavaScript 1.6 中引入的,它是 Mozilla 基金会的 ECMAScript3 扩展。根据链接的维基百科页面,它仅在 Firefox 1.5+ 和 Safari 3.x(+?) 中实现。
In addition to the other answers, keep in mind that
for each...in
is not part of the ECMA standard and also isn't included in the upcoming edition 3.1. It was introduced in JavaScript 1.6, which is an extension of ECMAScript3 by the Mozilla Foundation.According to the linked Wikipedia page, it's only implemented in Firefox 1.5+ and Safari 3.x(+?).