[英]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.