当返回值换行时,为什么Java return语句不起作用?

考虑以下JavaScript:

function correct()

{

return 15;

}

function wrong()

{

return

15;

}

console.log("correct() called : "+correct());

console.log("wrong() called : "+wrong());

correct()上面的代码片段中的方法返回的是正确的值,15在这种情况下。wrong()但是,该方法返回undefined。大多数其他语言不是这种情况。

但是,以下函数是正确的,并返回正确的值。

function wrong()

{

return(

15);

}

如果语法错误,它应该发出一些编译器错误,但不会。为什么会这样?

回答:

从技术上讲,JavaScript中的半冒号是可选的。但是实际上 如果它认为缺少某些换行符, 它只会为您插入它们

。但是它为您带来的决定并不总是您真正想要的。

return后面跟着新行的语句告诉JS解释器,此后应插入一个半冒号return。因此,您的实际代码是这样的:

function wrong()

{

return;

15;

}

这显然是错误的。那为什么行得通呢?

function wrong()

{

return(

15);

}

好了,我们在这里以open开头(。当它找到新行时,JS知道我们处于表达式的中间,并且足够聪明,在这种情况下不会插入任何分号。

以上是 当返回值换行时,为什么Java return语句不起作用? 的全部内容, 来源链接: utcz.com/qa/431603.html

回到顶部