真と偽はcとc++と非常に似ているが,Javaとは異なりJSではtrueやfalseの範囲が広いと考えられる.すべてのオブジェクト(空の文字列を除く)とゼロ以外の数値はtrueとみなされます.空の文字列、ゼロ、null、undefinedはfalseとみなされます.undefinedは特殊な値です.値が割り当てられていない場合のすべての変数はundefinedです.はっきり?:)同様に、値を返さないすべての関数は実際にundefinedを返します.実際には、キーワードです.したがって、次のコードは有効です.
var a = undefined;
実は下と似ています
var a;
値はjsに強く回転し、値で不可能なことをしようとすると、jsはできるだけ互換性を持たせ、意味のある結果を出力します.例:!0は実はブールタイプのtrueです!一般的にはブール型としか使えません.'2'*1は文字列では使用できないため、実際には数字2です.ただし、'2'+1は文字列21であり、文字列が存在するため、この数字は文字列として強制される.
ちょっとアドバイスがあります.あなたはこのように使うことができます–var hasChildren=!!children.length; これによりhasChildrenに適切なブール値が設定されます.