const set = new Set();
set.add(1);
set.add("Lydia");
set.add({ name: "Lydia" });
for (let item of set) {
console.log(item + 2);
}
这个JavaScript代码片段创建了一个 Set ,并将三个不同类型的元素添加到其中:数字1,字符串”Lydia”和一个包含属性name
的对象 { name: "Lydia" }
。然后,使用for...of
循环遍历Set中的每个元素,并将每个元素的值与2相加后打印出来。
让我们一步一步来看代码:
-
const set = new Set()
: 创建了一个名为set
的空Set。 -
set.add(1)
: 将数字1添加到Set中。 -
set.add("Lydia")
: 将字符串”Lydia”添加到Set中。 -
set.add({ name: "Lydia" })
: 将包含属性name
的对象{ name: "Lydia" }
添加到Set中。 -
for (let item of set) { ... }
: 这是一个for...of
循环,用于遍历Set中的每个元素。它将遍历所有三个元素:数字1,字符串”Lydia”和对象{ name: "Lydia" }
。 -
console.log(item + 2)
: 此行将在循环中打印每个元素(1,“Lydia”和{ name: "Lydia" }
),并在它们的值上加上2。
然而,由于Set中包含不同的数据类型(数字、字符串和对象),+
运算符在不同类型的元素上的行为也不同:
- 对于数字1:
1 + 2
将得到3
。 - 对于字符串”Lydia”:
"Lydia" + 2
将把字符串和数字连接起来,结果是"Lydia2"
。 - 对于对象
{ name: "Lydia" }
:对象没有定义+
运算符的行为,所以"[object Object]" + 2
将被打印。
循环的输出结果将是:
3
Lydia2
[object Object]2