Ruby の偽は、nil, false の2つだけだが、
JavaScript, Python では、各型に偽があるので、10個ぐらいある

こういう書き方ができてしまうのが危険!
整数の0 は偽

昔のC でも、MISRA-C などのコーディング規則で禁止していたもの。
条件式に、bool 値とみなされるもの以外を、
例えば、単純な整数などを使ってはならない

let ary = [ ]
let message = ""

if ( ary.length ) {
message = "真"
} else {
message = "偽"
}

console.log( message ) //=> 偽