Javascriptではどの変数論理演算結果がfalseであり、空の配列、空のオブジェクト、および属性が存在するかどうかを判断します.
false
論理判定では、下記の値はfalseと判断されます. false (ゼロ値) "(空の文字列) null undefined NaN true
上記の6つの値を除いて、他のすべての値はtrueとして決定されます.「0」 「false」 [](空配列) {}(空のオブジェクト) function(){}(空関数) 空のオブジェクト、空の配列
では、問題があります.空の配列、空のオブジェクトはどう判断しますか?次の方法で.
空の配列arrではないと判断しました.
ハスOwnPropertyを使用する():
もう一つ詳しく討論します.
論理判定では、下記の値はfalseと判断されます.
上記の6つの値を除いて、他のすべての値はtrueとして決定されます.
では、問題があります.空の配列、空のオブジェクトはどう判断しますか?次の方法で.
空の配列arrではないと判断しました.
typeof arr !== 'undefined' && arr.length > 0
空のオブジェクトを判断するobj:Object.keys(obj).length === 0 && obj.constructor === Object
属性が存在するかどうかを判断するハスOwnPropertyを使用する():
if(myObj.hasOwnProperty(myProp)){
alert("yes, i have that property");
}
MDNが与えた例https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean葃Examplesもう一つ詳しく討論します.