我对Chrome DevTools中的这个符号(<-)感到困惑。
这是返回值还是控制台值?
当我运行这个while循环时
var i = 0;
while (i < 5) {
console.log(i);
i++;
}
控制台日志显示两次 4,并且最后的 4 前面有一个 (<-),这是什么意思?
我对Chrome DevTools中的这个符号(<-)感到困惑。
这是返回值还是控制台值?
当我运行这个while循环时
var i = 0;
while (i < 5) {
console.log(i);
i++;
}
这与 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
本身的返回值,它刚好是最后一个i++
的结果。eval
你的输入;我以为Chrome本身会有更“直接”的方式来评估你的输入。 - user229044eval
只是其外壳。 :) - p.s.w.g
while
循环会评估一个值。使用x = while(i < 5) { i++ }
捕获此值在语法上是无效的,但是您可以通过使用x = eval('while (i < 5) { i++ }')
来捕获它,这将把4
赋给x
。非常有趣。 - user229044x=true; while(x){ x=false; "a" }//=> "a"
- user229044