为什么在Javascript的REPL中返回一个值?

当我在Javascript的REPL(浏览器的控制台或节点)中执行这个expression式时,

if(false) {4} else {5}

它返回5但我不明白为什么。

一个if不返回任何东西,例如我不能这样做:

var foo = if(false) {4} else {5}

那么为什么REPL返回一个值?

诚然, if陈述是陈述,并没有“价值”。 在一个普通的JS脚本中,当if(false) {4} else {5}被评估时什么都不会发生。

什么样的控制台通常会给你作为返回值是最后评估的expression式的值。

在你的情况下, 5是评估和返回。