Truthy、Falsyとtrue、falseの違い
1779 ワード
TruthyとFalsy
このtruthyとfalsyを紹介します.googleはこの単語がないです.考えても通訳はいらないです.中国語の感性で理解すると、「正しい」ではなくて、「帰ってもいいもの」です.
多くの言語のように、javascriptもbootleanデータタイプ(trueとfalseの2つの値があります)をサポートしていますが、特に、javascriptのどの対象にもbootlean値が含まれています.これはtruthyとfalsyの原則です.私たちはこの暗黙的な属性、特に変数比較に便利です.これらの特別なルールを把握することは、先端コードのデバッグに役立ちます.
truthyとfalsyの値
以下の値はfalse属性を含んでいます. false (ゼロ) 「」 null undefined NaN(Not-a-Number) 注意してください.これはnumberタイプです.変数がnumberではないことを示すnumberタイプです.ちょっと言いにくいです.
この他の値にはtrue属性が含まれています.例えば、「0」(文字列)、「false」(文字列)、空の関数、空の配列、空のオブジェクトなどが混ざりやすく、trueに戻ります.正常な変数は「abc」、1234などはもちろん、trueにも通じる.
例をあげましょう
falsy値間の比較については、以下のような場合があります.
1.false、0、串の三者は互いに待つことができます.
javascriptはtypeof(NaN)を使い、戻り値はnumber、つまりこのNaNはnumberタイプです.幸いにもjsは一つの変数が数字かどうかを判断するための関数inNaNを提供しています. もしあなたが使う時に疑問があります... 強さを使うのは同じでしょう.
このtruthyとfalsyを紹介します.googleはこの単語がないです.考えても通訳はいらないです.中国語の感性で理解すると、「正しい」ではなくて、「帰ってもいいもの」です.
多くの言語のように、javascriptもbootleanデータタイプ(trueとfalseの2つの値があります)をサポートしていますが、特に、javascriptのどの対象にもbootlean値が含まれています.これはtruthyとfalsyの原則です.私たちはこの暗黙的な属性、特に変数比較に便利です.これらの特別なルールを把握することは、先端コードのデバッグに役立ちます.
truthyとfalsyの値
以下の値はfalse属性を含んでいます.
例をあげましょう
var a = !!(0); // a false var b = !!("0"); // b true
falsy値との比較falsy値間の比較については、以下のような場合があります.
1.false、0、串の三者は互いに待つことができます.
var c = (false == 0); // true var d = (false == ""); // true var e = (0 == ""); // true
2.nullとundefinedは互いに待つことができますが、他の何種類かとは同じではありません.var f = (null == false); // false var g = (null == null); // true var h = (undefined == undefined); // true var i = (undefined == null); // true
3.NaNは、他のいかなる値と同じではなく、自分とも違っています.var j = (NaN == null); // false var k = (NaN == NaN); // false
もう一つ小さな知識を追加します.javascriptはtypeof(NaN)を使い、戻り値はnumber、つまりこのNaNはnumberタイプです.幸いにもjsは一つの変数が数字かどうかを判断するための関数inNaNを提供しています. もしあなたが使う時に疑問があります... 強さを使うのは同じでしょう.
var l = (false == 0); // true var m = (false === 0); // false
もう一つの特別なところ 空配列、例えばvar a=[]trueに戻るのですが、どう使うかによって違います.if ( [] ) { // } if ( [] == true ) { // } if ( [] == false ) { // }
つまり、truthyとtrueはまだ違っています.true属性が含まれている変数はtrueとは思えません.ブックレンタイプではありません.