如果函数有多个返回语句,javascript 的底层会发生啥?

Posted

技术标签:

【中文标题】如果函数有多个返回语句,javascript 的底层会发生啥?【英文标题】:What happen under the hood in javascript if function is having more than one return Statment?如果函数有多个返回语句,javascript 的底层会发生什么? 【发布时间】:2021-06-19 02:05:30 【问题描述】:

在下面的代码中,我想知道引擎盖下发生了什么?

function data() 
  return 4;
  return;


console.log(data()); // return 4

但是

function data() 
  return;
  return 4;

console.log(data()); //return undefined

这背后的原因是什么?我可能认为其背后的原因是“javascript 是一种解释性语言”,但我不确定。

【问题讨论】:

只有块中的第一个return语句在没有执行之后才会被执行。 你了解return 的作用吗?为什么这意味着第二个会被忽略? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…: “当在函数体中使用return语句时,函数的执行将停止。如果指定,则将给定值返回给函数调用者。” 我不认为“非常清楚”意味着你认为它的意思。 @ScottHunter “你一直在用那个词”。 【参考方案1】:

函数将返回第一个return

function data()
       return ;
       return 4;
    
console.log(data());

在上面带有第一个 return 的代码中,您没有返回任何参数/值,因此它保持未定义。

【讨论】:

以上是关于如果函数有多个返回语句,javascript 的底层会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章