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 &lt; 5) i++ 捕获此值在语法上无效,但您可以使用x = eval('while (i &lt; 5) i++ ') 捕获它,它将4 分配给x。很有趣。 更奇怪的是,它计算为循环体内的最后一个表达式,即使循环体没有返回它:x = true; while (x) x = false; "a" // =&gt; "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++ 的结果。

【讨论】:

啊,当然。我发现控制台真的只是evaling 你的输入很有趣;我认为 Chrome 本身会有一种更“直接”的方式来评估您的输入。 @meagar 我会说 chrome is “直接”评估代码,而 eval 只是一个包装器。 :)

以上是关于Chrome DevTools:这个箭头(<-)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

使用Chrome DevTools直接调试Node.js与JavaScript(并行)

chrome devtools怎么打开

Nativescript-Vue 7 - 创建新项目后,我在 google chrome devtools 中看不到网络活动

聊聊 Chrome DevTools 中你可能不知道的调试技巧

小技巧|配置好用的Chrome DevTools

Chrome DevTools 损坏 - Stetho 无法使用