Chrome DevTools:这个箭头(<-)是啥意思?
Posted
技术标签:
【中文标题】Chrome DevTools:这个箭头(<-)是啥意思?【英文标题】:Chrome DevTools: what's this arrow(<-) meaning?Chrome DevTools:这个箭头(<-)是什么意思? 【发布时间】:2014-03-16 06:10:12 【问题描述】:我对 Chrome DevTools 中的这个符号 (
是返回值还是控制台值?
当我运行这个 while 循环时
var i = 0;
while (i < 5)
console.log(i);
i++;
控制台日志两次吐出4,最后4个前面有一个(
【问题讨论】:
箭头表示前一个表达式计算的值,尽管我不知道为什么while
循环会计算一个值。使用x = while(i < 5) i++
捕获此值在语法上无效,但您可以使用x = eval('while (i < 5) i++ ')
捕获它,它将4
分配给x
。很有趣。
更奇怪的是,它计算为循环体内的最后一个表达式,即使循环体没有返回它:x = true; while (x) x = false; "a" // => "a"
也在这里回答***.com/questions/14713320/…
【参考方案1】:
这与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++
的结果。
【讨论】:
啊,当然。我发现控制台真的只是eval
ing 你的输入很有趣;我认为 Chrome 本身会有一种更“直接”的方式来评估您的输入。
@meagar 我会说 chrome is “直接”评估代码,而 eval
只是一个包装器。 :)以上是关于Chrome DevTools:这个箭头(<-)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
使用Chrome DevTools直接调试Node.js与JavaScript(并行)
Nativescript-Vue 7 - 创建新项目后,我在 google chrome devtools 中看不到网络活动