2016-09-18 5 views
0

は、私はいくつかのトリッキーなjavascriptの出力の質問を読んで、そのための何の説明がありませんJavascript:なぜ2 && 3は3を返しますか?

console.log(2 && 3) is 3 

ことが判明しました。 true?でなければなりません。数値が0以外の値は、型キャストされている必要があります。true

+2

'(a&b)==(a?b:a)'と '(a || b)==(a?a:b)'です。 –

+3

'&&'は左端から最初の 'false'を返します。何もない場合は、最後のものを返します – choz

+1

javascriptでは、 'if'のようなフロー制御文では' while'が暗黙の型キャストをブール値 – Anirudha

答えて

2

これは言語の仕組みです。それは十分に文書化されている。 MDNパー

:それはfalseに変換できる場合

(expr1とexpr2の& &)論理ANDはexpr1を返します。 それ以外の場合は、expr2を返します。したがって、ブール値で使用する場合、& & は両方のオペランドをtrueに変換できる場合はtrueを返します。そうでない場合、 はfalseを返します。

関連する問題