2017-08-10 5 views
-1

申し訳ありませんがこの質問は古いようですが、興味深い答えです。 ので、私は次のスニペットJavascript略記ブール型

function halo(firstname, lastname) { 
 
    lastname = lastname || 'no last name'; 
 
    console.log(firstname + ' ' + lastname); 
 
} 
 

 
function testbol(start) { 
 
    start = start || true; 
 
    console.log(start); 
 
} 
 

 
halo('jee'); 
 
halo('jee', 'tan'); 
 
    
 
testbol(); 
 
testbol(false);

を持っている質問は:それはfalse

+0

「MDN」(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators)の '?|'が返すものを参照してください。 'start'がfalseの場合、' start || trueがtrueの場合 – ASDFGerte

+0

falseがfalseのため.... – epascarello

答えて

-1

"偽または真" 必要がありますが、なぜ二testbool機能はtrueを生み出す真です。 「空が赤、空が青」という文を考えてみましょう。それは真実か偽ですか?

+0

そのどちらも - これは単なるステートメントです。 – Jamiec

+3

私たちは哲学の授業にはいません。私は、「空が赤いか、空が青い」という文章で示された命題を、より多くの*基本的な概念であることを示すためのニュアンスのレベルと考えることはしません。 :) – shabs

+0

「空は赤いか、空は青です。それであなたはどうやって感じるのですか?」 :) – Jamiec

2

left || rightは、左側が真値ならば左辺として評価され、そうでない場合は右側として評価される。

false || trueは、右側がtrueと評価されます。要するに

:あなたは次のようになり真実ない定義済みかのためにテストされています

testdefined(); 
 
testdefined(false); 
 

 
function testdefined(start){ 
 
    start = typeof start === "undefined" ? true : start; ; 
 
    console.log(start); 
 
}

+0

あなたは事をさらに混乱させるために狂気の長さに入った。なぜあなたは左手側と右手側で物事を見るのですか?この数学演算は乗算除算と減算で行っていました。ルールは単純で、ANDステートメントでfalseがあればfalseになり、ORステートメントで真の場合はステートメントがtrueになります。シンプル。 –

+0

@MaxAlexanderHanna - いいえ '3 || 「5」は「3」で「真」ではない。 – Quentin

+0

はそれらのブール値ですか? –

0

あなたの最後の文は、偽を評価|| trueこれはtrueと評価されます。