JavaScript おれおれ Advent Calendar 2011 – 6日目
ビット演算のOR|
で一発です。
var source = -12.3; // 実数 var result = source | 0; // => -12
var source = "010"; // 文字列 var result = source | 0; // => 10
これだけで実数→整数も文字列→整数も行けますし、文字列が"12a"
でも"xxx"
でもNaN
にもなりません。
ビット演算はOR|
の他にAND&
とXOR^
、単項のNOT~
がありますが、JavaScriptではいずれも辺々を数値化し整数化してから、演算を実行します。
また0
はビットが全てゼロですから、それとのORを取っても元の数値と同じ数値が返ってきます。こうして、結果的に整数化する事ができました。
ぱっと見は分かりづらいので、コメントを書くとか、まあ工夫してください。