2016-03-23 12 views
0

次は、'hi'と評価されるのはなぜですか?次は、「hi」と評価されるのはなぜですか?

'hi' || true || 50 

私はJavaScriptにスーパー新しいものではないんだけど、私はこれではなく、真の'hi'と評価された理由を理解していない私の人生のためのいくつかの古い書籍やIを経て私の知識をrebeefingよ..缶誰かがこれを説明しますか?

+2

これは '||'の定義方法です: 'x || y "は" xが本当にxを返す(真でない)場合はy "を意味する。 – georg

+1

ちょうど[RTFM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Logical_operators) – hindmost

+0

私はなぜあなたの本で説明されていないのだろうかと思います。 –

答えて

1

真実と虚偽の価値の世界へようこそ。

値がtrueに変換される場合、その値はいわゆる真理値です。 値をfalseに変換できる場合、その値はいわゆるfalsyです。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

これは基本的に

false 
null 
undefined 
NaN 
"" 
0 

除くすべてがtruthyある最初の値を返す、||条件にtrueに評価されることを意味します。これは、時には合体のような方法で使用されている:上記の値はいずれも、他の空のJavaScriptのオブジェクトがない場合に設定します

a = a || {} 

0

'hi'は空ではない文字列リテラルなので、ブール値として扱うときはtrueと評価されます。式a || b || cはtrueと評価される最初の式を返します。この場合は 'hi'です。 MDN (Logical Operators)から

0

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

戻り値は、式expr1;そうでなければ、expr2を返します。したがって、ブール値で使用すると、||どちらかのオペランドをtrueに変換できる場合はtrueを返します。両方をfalseに変換できる場合はfalseを返します。

0

皆さん、ありがとうございます。ええ、今では意味をなさないのは、評価する最初の値が評価される値であることを覚えているからです。私は、真実のものについてもっと勉強しなければならないと思います。なぜなら、それは簡単ですが、ある意味では時にはやや混乱しているからです。再度、感謝します!!

関連する問題