他们并不
在Vue.js中,for..of
和for..in
是等效且可互换的。遍历Vue.js非常灵活,可以处理各种对象和类型(甚至包括整数!请注意,TC39!)。
https://v3.vuejs.org/guide/list.html
以下是有效的Vue.js代码:
<p v-for="x of {a: 1, b: 2, c: 3}">{{x}}</p>
<p v-for="x in {a: 1, b: 2, c: 3}">{{x}}</p>
<p v-for="x of [1, 2, 3]">{{x}}</p>
<p v-for="x in [1, 2, 3]">{{x}}</p>
1
,2
,3
。for..of
和 for..in
之间存在差异。for..of
将遍历可迭代对象,而 for..in
将遍历可枚举属性。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...of
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...in
for (const x of {a: 1, b: 2, c: 3}) {console.log(x);} // TypeError ... is not iterable
for (const x in {a: 1, b: 2, c: 3}) {console.log(x);} // Prints a b c
for (const x of [1, 2, 3]) {console.log(x);} // Prints 1 2 3
for (const x in [1, 2, 3]) {console.log(x);} // Prints 0 1 2 (the indexes)
你可以看到,它们的行为非常不同。
即使是看起来相同的代码 (for..in {a: 1, b: 2, c: 3}
) 在 Vue.js 和普通的 JavaScript 中会产生不同的结果,一个会输出 1
、2
、3
,另一个会输出 a
、b
、c
。