JavaScript 神秘的返回语句难题
考虑以下 JavaScript 代码片段:
function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());
令人惊讶的是,正确()返回预期值 15,而 false() 返回未定义。这种行为与大多数其他编程语言不同,让我们想知道为什么会发生这种情况。
技术解释:不可见的分号
JavaScript 的分号是可选的,解释器自动将它们插入到某些换行符处。然而,解释器的假设可能并不总是与我们的意图一致。
在错误()的情况下,返回语句后面跟着一个换行符。这会触发分号的插入,从而产生以下代码:
function wrong() { return; 15; }
分解问题:返回语法
return 语句后面必须紧跟着返回值。在错误()中,return后面的分号终止语句,使下一行断开连接。
解决方案:将表达式括在括号中
为了避免这种混乱,我们可以将返回表达式括在括号中:
function wrong() { return ( 15 ); }
括号可以防止解释器插入分号并确保表达式被正确计算。
理解 TypeScript 的推理
TypeScript(JavaScript 的类型超集)在上述代码中发出编译器错误,强调了正确的 return 语句语法的重要性。这强调了在 JavaScript 中定义函数时此类考虑的重要性。
以上是为什么 JavaScript 的 `return` 语句有时会返回 `undefined`?的详细内容。更多信息请关注PHP中文网其他相关文章!