javascript - JavaScript 中的一个奇怪的 return 语句

标签 javascript function

以下函数可以工作并完成其预期的工作 - 返回指定的所需值。

function returnValue() {
    return( 
          "value");
}

只是将返回值分成一个新行。

<小时/>

如果如下删除一对括号,则返回 undefined

function returnValue() {
    return 
         "value";
}

我正在使用的 IDE 发出如下警告。

Code has no side effects

“值(value)”似乎不属于 return 的一部分声明本身。

为什么他们的行为不同?

最佳答案

因为在 Javascript 中,语句可以用换行符而不是分号来终止。分号本质上是自动插入的,但仅在结果可以是完整语句的情况下

return; 本身有效,但是您的函数不会返回任何内容,并且您的 "value"; 没有副作用。

另一方面,您的第一个示例根本无法以这种方式进行解析,因为该行在括号中间结束。

这些规则在 ECMA-262 标准文档的第 7.9.1 节中进行了描述。

关于javascript - JavaScript 中的一个奇怪的 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276128/

相关文章:

javascript - Twitter Bootstrap 导航下拉菜单未扩展到 div 之外

javascript - 如何正确使用 Promise 和回调函数

javascript - 在 .includes() 中使用逻辑运算符——出现错误

C++ 多维数组和指向指针表的指针

javascript - 添加列,然后按类别分隔数据

javascript - JavaScript 中的命名和未命名函数

javascript - JS 新对象 VS 新对象()

r - 如何在R中使用索引函数创建多列?

python - 关闭 : retrieve a variable given with the outer function

c - 运行时错误 - c 中的指针