JavaScriptにおける真偽判定がややこしすぎたので表にまとめてみました。
Trueになるやつ
型 | 中身 |
---|---|
Number | 0とNaN以外 |
Array | [] |
Object | {} |
String | 'a' |
falseになるやつ
型 | 中身 |
---|---|
Object | null |
Number | 0 |
Number | NaN |
Number | [].length |
Number | Object.keys({}).length |
String | ''(空文字) |
Number | ''.length |
推察(この推察 = trueなのかは知らない)
Number
0ないしNaNならfalse
それ以外はtrue
Object,Array
基本的にtrueになっちゃう
-> lengthでNumberにしようね
(Objectに関してはObject.keysしないといけないから他にもっと楽な方法はあるかもしれない)
String
[]や{}を差し置いて空文字は生意気にもfalse
それ以外はtrue
null
おまえは流石にfalse
#まとめ
lengthはっょぃ
※コメントにて間違いをご指摘くださった@htsign様、誠にありがとうございましたm(_ _)m