2017-07-23 94 views
0

我看着這些if語句:的javascript:使用三元運算符的if/else if/else語句

if (cellDate < filterLocalDateAtMidnight) { 
    return -1; 
} else if (cellDate > filterLocalDateAtMidnight) { 
    return 1; 
} else { 
    return 0; 
} 

this article,我想知道爲什麼手短,如果不使用的語句(即使用三元運營商)>使用它有缺點嗎?這似乎是一個很好的使用它的機會。

如果可以使用,下面是如何簡化它?我想修改我的代碼,雖然我對文章從例如偏離(在不經意間引入一些特殊情況下毛刺)有點擔心

cellDate < filterLocalDateAtMidnight ? -1 :(cellDate > filterLocalDateAtMidnight : 1 : 0); 

我承擔獨立的,如果在以下情況下被使用的語句null /未定義的值?

+0

您的三元表達式正確表示if else語句。如果else語句可以使用三元運算符以緊湊的方式表示。 –

回答

1

嵌套三元混淆閱讀,通常應避免。請參閱Airbnb style guide

通過數值比較,您通常可以使用減法。即

return cellDate - filterLocalDateAtMidnight; 

但是要注意,這個解決方案對於真正的大數字容易受到整數溢出的影響。