簡體   English   中英

javascript function 返回不帶分號

[英]javascript function return without semicolon

如果我想寫(以節省 4 個空格縮進,或任何原因):

return
   someLongLineExpressionReturnValue;

return 將被視為'return;' 在所有類似 c 的語言中都可以的東西在 javascript 中會失敗。

這種奇怪的行為有一些解決方法嗎?

更新:也許最短的解決方案是這樣的(下面的類似答案)

return 0||
    someLongLineWxpressionReturnValue;

發生這種情況是因為在return語句之后自動插入了一個分號,使其成為:

return;
    someLongLineExpressionReturnValue;

如果希望return與下一行耦合,則需要在return行上啟動一個表達式。

想法:

// a natural way of doing this
return (
    someLongLineExpressionReturnValue
);

// or, if you don't want to add parenthesis

return "" + // if the expression is a string
    someLongLineExpressionReturnValue;

return 0 + // if the expression is a number
    someLongLineExpressionReturnValue;

return true && // if the expression is a boolean
    someLongLineExpressionReturnValue;

無論someLongLineExpressionReturnValue的類型如何,最后一個示例都應該有效,因為表達式的第一部分將被評估為true ,然后&&將返回表達式的第二部分,即someLongLineExpressionReturnValue

我確實推薦更自然的方式來執行此操作,因為其他方式將來可能會成為維護問題,並且您可能最終會想知道為什么要這樣做。

一種方法是用括號括住返回值(下面的函數 f)。

另一種是將long表達式值放入一個變量中並返回該變量(下面的函數g)。

但也許您的問題的最佳解決方案是將它與false (下面的函數 h)相或。 由於false永遠不會是true ,它將返回||之后的值在下一行。

 someLongLineExpressionReturnValue = "hello"; function f() { return ( someLongLineExpressionReturnValue ) } function g() { const result = someLongLineExpressionReturnValue; return result; } function h() { return false || someLongLineExpressionReturnValue; } console.log("f()",f()); console.log("g()",g()); console.log("h()",h());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM