当前位置: 首页 > 面试题库 >

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

邰棋
2023-03-14
问题内容

考虑以下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知道我们处于表达式的中间,并且足够聪明,在这种情况下不会插入任何分号。



 类似资料:
  • 问题内容: 当我通过redis EVAL运行此代码时,它不会返回任何结果。知道为什么这行不通吗? bug.lua 如果我初始化表,则仅打印该值。 问题答案: 如果您参考Redis 文档 ,则可以看到Redis将Lua表转换为Redis回复所使用的规则: Lua表(数组)-> Redis多批量回复( 如果有的话,将被截断为Lua数组中的第一个nil ) Lua表带有单个ok字段-> Redis状态回

  • 例如: 由于指的是“nothing is return”,那么我们在这里如何使用return语句。这是否意味着所有程序都返回一些东西,不管它是void还是其他返回类型? 我还有一个关于作为返回类型的查询:

  • 问题内容: 我是Java的新手,正在尝试学习速记语句的概念。 我想出了下面的代码。但是,该代码将无法编译,并在(即?:)语句旁边显示错误。 有人可以告诉我为什么它不起作用吗? 对不起,如果我的问题对某些人听起来很愚蠢。我是Java新手。 在此先感谢您的帮助! 问题答案: 三元表达 是一个 表达式 ,而不是一个语句,因此不能在需要语句的地方使用。 您可以这样写: 因为这是一个声明。

  • 我在客户端使用vue、vue路由器,在服务器端使用express、morgan(MEVN应用程序) 在客户端我用vue cookie设置cookie 在服务器端,我使用CookieParser 所以,在应用程序。我有这样的代码 并且,在文件中,我有这样一个GET请求的代码 问题是,var loginHash=req.cookies['Login'];总是返回未定义的,即使我有登录cookie 添加

  • 我刚开始学C++,我试着做一个骰子游戏,用户输入一个1到6之间的数字,然后代码打印一个在这个范围内的随机数,如果y和z相同,你就赢了。 这是我的代码,但当我输入一个数组中没有的数字时,它的工作方式就好像它在数组中一样。 (输入是y)(数组是x)(你需要赢的数字是z) 此外,我可能会更改它,使它只读取数组,这样用户甚至可以放入骰子的边数,如果这样做顺利的话。

  • 根据JSON规范,表示null值的正确方法是文字。 预期结果: 实际结果: