JavaScriptの不思議

JavaScriptは不思議な子。

なんでこれがtrueなの?

3<1<3 // true

Pythonでは、この書き方でおkだったはず。
でも、JSではNG。

まず、3<1が解釈されてfalseになる。

false<3 // true

falseが数値型に変換される。変換されると0になる。

false<3 // true
0<3 // true
+false // 0
+true // 1

そうそう、先頭に+をつけると数値型に変換されるんよ。

+'3' // 3
+'3.14' // 3.14
+'-3.14' // -3.14
-'-3.14' // 3.14

そうそう、数値型の先頭に~~をつけると整数部が得られるんよ。

~~3.14 // 3
~~-3.14 // -3

僕は~~が嫌い。 Numberのprototypeを拡張して、integerメソッドをつくったほうがいいと思う。

じゃあ、問題。 これはどうなる?

~~-+'3.14' // ?

あと、もうひとつ。
JavaScriptの型の変換規則は複雑なので==ではなく===、!=ではなく!==をつかいましょう。
===では型が合っているかどうかもみられます。

3=='3' // true
3==='3' // false

JavaScriptはこういうのがたくさん・・・。
さて、明日は面接です! 楽しむぞー