我对Chrome DevTools中的这个符号(&lt ;-)
感到困惑
它是返回值还是控制台值?
当我在循环中运行时
var i = 0;
while (i < 5) {
console.log(i);
i++;
}
控制台日志吐出4次,最后4次在前面有一个(&lt ;-),这是什么意思?
答案 0 :(得分:6)
这与eval
函数的性质有关。请注意:
var i = 0, j = while(i < 5) { i++; };
产生编译错误。然而,
var i = 0, j = eval('while(i < 5) { i++; }');
将值4
分配给j
。为什么是这样?引自MDN:
eval()
返回最后评估的表达式的值。
简而言之,它会评估表达式中console.log
的所有调用,然后记录eval
- ed表达式本身的返回值,这恰好是最后一个的结果。 i++
。