2017-10-10 7 views
1

空の文字列と偽の論理値を論理AND比較すると、空の文字列が返されるのはなぜですか?なぜ文字列とfalse booleanの論理AND比較がfalseを返すのでしょうか?JavaScriptが "論理AND"演算の空の文字列を返すのはなぜですか?

例:ジャバスクリプトがこのように振る舞う理由

'' && true; --> returns '' 
'string' && true --> returns true; 
'' && false --> returns '' 
'string' && false --> returns false; 

質問はありますか?

+4

式を終了するための最初の決定値を返します。 –

+1

また、 '0'と' NaN'で同じ結果になります。これはJavaScriptの「偽の」値の1つです。論理ANDは、それらの値を 'false'と同じに返します(' true && false'は 'false'です)。 https://developer.mozilla.org/en-US/docs/Glossary/Falsy – Walk

答えて

4

JavaScriptと(expr1 && expr2)演算子は、論理に基づく式を返すことによって動作します。

if expr1 is falsy 
    return expr1 
else 
    return expr2 

Falsy値は、など、あなたの空の文字列('')、nullNaNundefinedを含み、あなたはについての詳細を読むことができますそれはhttps://developer.mozilla.org/en-US/docs/Glossary/Falsyです。

ブール演算子の詳細については、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operatorsを参照してください。

0

&&演算子は非常に簡単です:最初の値がfalsyの場合は最初の値を返し、それ以外の場合は2番目の値を返します。

空の文字列''が偽であるため、'' && xはすべてxに対して''を返します。一方、'string'は真実であるため、'string' && xはすべてxに対してxを返します。

関連する問題