簡體   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