var a = new Map();
a.set(1,2);
a.set(3,4);
a.set('man','good');
a.set('4','hi');
for (var [x,y] of a){
console.log(x+' '+y);
}
当我编写上面的代码时,我得到的输出如下:-
1 2
3 4
man good
4 hi
但是当我用 typeof x 替换 console.log 时,它只显示最后一个 x 的 typeof,即 4。为什么它会跳过其余三个???
var a = new Map();
a.set(1,2);
a.set(3,4);
a.set('man','good');
a.set('4','hi');
for (var [x,y] of a){
typeof x;
}
输出:-
'string'
最佳答案
typeof
不记录任何内容。您应该使用console.log()。老实说,我真的不知道发生了什么事,但你永远没有任何理由关心这个。您不能依赖于此来进行日志记录。我确实尝试过这个尝试并理解隐式日志记录是如何工作的,它似乎只记录 for 循环的最后一个值。
> x = [1,2,3,4]
[ 1, 2, 3, 4 ]
> for (let i of x) i
4
关于javascript - typeof x 仅在 for ... of 循环中使用时给出一个结果,即最后一个值结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42572411/