在新行被破坏后返回带有表达式的语句

时间:2017-01-27 03:59:15

标签: javascript

这是我的一个最小的工作示例:

function foo () {
    return
        1;
}

function bar () {
    return 1;
}
console.log(foo()); //Undefined
console.log(bar()); //1

https://jsfiddle.net/mve3crm5/

我希望foo()bar()都返回1

但是,foo()返回undefinedbar()返回1

假设这是预期的行为,为什么?

我经常不使用JavaScript,所以这让我感到困惑。朋友推荐我使用"严格模式"但是我尝试了它并且发生了相同的行为。

我在Chrome和节点v7.4.0上进行了测试,也使用了节点--use_strict标志。

我把我的表情放在一个新的界限上,因为我回来的特殊表情并不复杂但很长。我将表达式分成多行,并且惊讶地得到undefined值。

我调试了系统中的所有内容并得出结论,除了return声明之外没有任何错误,但拒绝相信它。然后,我试图把一个最小的例子放在一起,看到它确实是这样的。

我不得不相信这是JavaScript的工作方式,尽管仍然持怀疑态度。我部分地确信我可能在某个地方有一个错字。

0 个答案:

没有答案