当返回值换行时,为什么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