这是我的一个最小的工作示例:
function foo () {
return
1;
}
function bar () {
return 1;
}
console.log(foo()); //Undefined
console.log(bar()); //1
https://jsfiddle.net/mve3crm5/
我希望foo()
和bar()
都返回1
。
但是,foo()
返回undefined
,bar()
返回1
。
假设这是预期的行为,为什么?
我经常不使用JavaScript,所以这让我感到困惑。朋友推荐我使用"严格模式"但是我尝试了它并且发生了相同的行为。
我在Chrome和节点v7.4.0上进行了测试,也使用了节点--use_strict标志。
我把我的表情放在一个新的界限上,因为我回来的特殊表情并不复杂但很长。我将表达式分成多行,并且惊讶地得到undefined
值。
我调试了系统中的所有内容并得出结论,除了return
声明之外没有任何错误,但拒绝相信它。然后,我试图把一个最小的例子放在一起,看到它确实是这样的。
我不得不相信这是JavaScript的工作方式,尽管仍然持怀疑态度。我部分地确信我可能在某个地方有一个错字。