Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

javascriptにおいて、trueは1(数値)として扱われる事がある

ちょっと何言ってるかわかりませんが、javascriptにおいてtrueは1として扱われてしまう事があります。
条件式でも1と扱うことができますし、四則演算もビット演算もできます。
魔界記法を実現したいならモッテコイですね……実際には意図しないバグを潰す過程で見つかりそうな話ですが。

実際のところ

比較演算

trueが1ということは、(1 == true)は正を返します

console.log( (1 == true) ? 'yes' : 'no')
//=> yes

そうでないもの……たとえば5だとか'hoge'だとかは負です

console.log( (1 == true) ? 'yes' : 'no')
//=> no

console.log( (1 == true) ? 'yes' : 'no')
//=> no

演算

trueが1という事は……他の数値と同様、計算ができます。

true + 1
// 2

true << 2
// 4 as 0b100

こりゃもうわかんねぇな(呆