JavaScript函数调用子表达式可以是尾部调用吗?

fredoverflow

考虑以下return语句:

return f() || g();

该调用f()显然不是尾部调用,因为如果函数错误,该函数实际上不会返回f()

g()部分呢,那是尾声吗?还是我必须像这样重写它:

const temp = f();
if (temp) return temp; else return g();
user2357112支持Monica

是的,但是在实践中没有帮助。

根据标准g()在尾部位置:

LogicalORExpression:LogicalORExpression || 逻辑与表达式

使用参数调用返回LogicalANDExpression的HasCallInTailPosition。

但是,大多数浏览器不支持消除尾声,而Chromium团队也没有为此提供支持,因此无论您如何编写尾声,您都不能在实践中依靠尾声消除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

作业的左侧可以是Javascript中的表达式吗

循环可以是表达式吗?

我们可以在 cmake 生成器表达式中调用函数吗?

lambda表达式可以是多态的选择吗?

在 C 中,表达式可以是指针吗?

JavaScript匿名函数立即调用/执行(表达式与声明)

“立即调用的函数表达式”中的JavaScript原型

立即调用JavaScript中的函数表达式

用于检测javascript调用函数的regEx表达式

调用函数表达式

函数调用和*表达式

计算函数调用中的表达式

XPath 表达式中的调用函数

以下代码何时何时调用/执行/调用JavaScript函数表达式?

您可以在折叠表达式中使用子表达式吗?

元类可以是可调用的吗?

可以从Angular ng-click表达式中调用“ alert()”或“ console.log()”吗?

编写用户脚本时,真的需要立即调用函数表达式(IIFE)模式吗?

jQuery:期望赋值或函数调用是一个ifelse简短陈述的表达式吗?

你能在 AngularJS 表达式中放置一个函数调用吗?

为什么在定义函数表达式之前就可以对其进行调用?

是否可以延迟对作为函数调用一部分的表达式的求值?

有什么正式的方法可以编写立即调用的函数表达式?

Javascript立即调用函数表达式(IIFE)和函数作用域

空指针常量可以是任何取值为0的整数常量表达式吗?

JavaScript:给函数赋予与函数表达式相同的名称可以吗?

您可以在以打字稿/角度导出它之前创建一个类吗?| TSLint:未使用的表达式,预期为赋值或函数调用

构造函数也可以称为函数表达式吗?

Python调用表达式的被调用者什么时候可以成为调用表达式?