如果函数有多个返回语句,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 的底层会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript连载15-return函数声明方式差异化回调函数

C语言中return语句怎样返回两个或多个值

如何显示 DLL 可导出的函数

javascript 编写一个函数,该函数接受一个字符串数组并返回该数组中最常出现的字符串。如果有多个字符串

返回语句在 JavaScript 中是如何工作的? [复制]

chapter4.2函数返回值