繁体   English   中英

return语句后的javascript变量声明

[英]javascript variable declarations after return statement

我正在查看一些精简的javascript代码(来自github),并且代码中的代码块看起来像

h = function(a, b, c, d) {
        var e, h, i, j, k, l, m = this;
        return i = $("#js-frame-loading-template").clone().show(), l = c === "back" ? 350 : 500, j = i.find(".js-frame-loading-spinner").hide() // more stuff here

我很好奇为什么/如何运行此代码,因为在return语句后有变量声明

让我向您介绍逗号运算符

return语句右边的所有内容都是一个表达式,由多个“子表达式”组成,并用逗号分隔:

return a, b, c, d;

从左到右评估每个子表达式,最后一个子表达式的值是整个表达式的结果。 也就是说,在这种情况下,将返回最后一个表达式的结果(计算d的结果和示例中// more stuff here隐藏在// more stuff here任何// more stuff here )。

将多个表达式压缩为一个是“技巧”。


鸡蛋里挑骨头:

[...]因为return语句后有变量声明

该行中没有变量声明 ,只有赋值表达式。 您在那里可能没有var语句(变量声明),因为逗号运算符(和return语句)仅适用于表达式,而不适用于语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM