在 JS 中显式指定 return 语句与根本没有 return 语句有什么区别
What is the difference between explicitly specifying a return statement in JS vs not having a return statement at all?
我正在维护一些旧代码,我注意到在很多情况下,老程序员将return;
语句作为他大多数函数的最后一行。这有什么好处吗?我觉得这是浪费空间,所以我一直在删除它们。其中一个通常更快吗?
来自 ECMAScript 语言规范:
调用函数对象 F 的 [[调用]] 内部方法时 使用此值和参数列表,以下步骤是 采取:
- 让 funcCtx 是使用 F 的 [[FormalParameters]] 内部的值为函数代码建立新执行上下文的结果 属性,传递的参数 List args,并将此值作为 在 10.4.3 中描述。
- 让结果是计算 FunctionBody 的结果,该函数体是 F 的 [[Code]] 内部属性的值。如果 F 没有 [[代码]] 内部属性,或者如果其值为空的函数体,则 结果为(正常、未定义、空)。
- 退出执行上下文 funcCtx,恢复以前的执行上下文。
- 如果 result.type 是抛出的,则抛出 result.value。
- 如果 result.type 是 return,则返回 result.value。
- 否则,result.type 必须为正常。返回未定义。
换句话说,如果调用的函数没有显式return
语句,则隐式返回 undefined
。
return 语句用于从函数返回值。您不必使用 return 语句;程序将在到达函数末尾时返回。如果函数中未执行 return 语句,或者 return 语句没有表达式,则该函数返回未定义的值。
return; //undefined
return
a+b;
// is transformed by ASI into
return;
a+b;
所以你又被取消定义了。
在这里查看 MDN 文档
顺便说一下,我找到了这个关于性能的链接,我找到了一个测试,它比较了 4 个表达式、两个带有返回的函数和没有返回的相同函数。
在这里你可以看到测试。希望与您的问题有关
相关文章:
- jquery if语句返回return wong语句
- 函数在return语句之前返回空对象
- 当使用return语句时,循环不会中断
- 如何在不使用return的情况下跳过下一个if语句
- return语句在JavaScript中使用而不中断函数
- 从 JavaScript 调用的小程序方法中的 return 语句
- 为什么我的子函数需要“return”语句以避免出错?父函数没有“返回”,也没有错误
- 具有多个逗号分隔值的 return 语句
- 为什么“return”不完全停止“if”语句中的函数
- 如果语句基于 return if 一个 $.post 命令
- 在 JS 中显式指定 return 语句与根本没有 return 语句有什么区别
- Return语句在ajax调用之前调用
- dojo中的return语句是如何工作的
- 发送ajax请求时出现return语句问题
- 有return语句和没有return语句的函数之间有区别吗
- return语句在完成任务之前返回
- 在return语句中编写代码,在字符串中添加点
- addEventListener函数定义中return false语句的意义
- 当您从函数返回JavaScript语句时会发生什么,例如return console.log(“Hello”)
- Gulp任务中“return”语句和“callback”引用的用途