以下函数可以工作并完成其预期的工作 - 返回指定的所需值。
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/