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はこういうのがたくさん・・・。
さて、明日は面接です! 楽しむぞー