[小Tip]JavaScript回転整数杯具2則
485 ワード
今日ある大牛を見た時、前に書いたコードの中に、「|0」という書き方を使って文字列を整理しました.これはもともと何もなくて、多くの人がこのようにしますが、彼のコードの中で処理されているのはタイムスタンプです.例えば:
「1325239449538」
_;0;
結果は-1905444926です.これは明らかに私たちがほしいものではありません.この問題の原因はA、Bを先にToInt 32から演算し、返した結果は32ビットのシンボル型の整数である.Aが2147483647を超えると、つまり231-1です.杯具です.
もう一つのよく使われているパーミッション関数は、カップのようなものも起こりやすいです.
parseInt(0.0000001)
ほとんどのブラウザでは、結果は1(新版firefoxは0を得る)であり、これも明らかに期待されていない.理由は、パーrseInt(A)の第一歩がToString(A)を実行するからです.上記の例では、0.000001は「1 e-7」に変わります.後のことは全部知っているはずです.
「1325239449538」
_;0;
結果は-1905444926です.これは明らかに私たちがほしいものではありません.この問題の原因はA、Bを先にToInt 32から演算し、返した結果は32ビットのシンボル型の整数である.Aが2147483647を超えると、つまり231-1です.杯具です.
もう一つのよく使われているパーミッション関数は、カップのようなものも起こりやすいです.
parseInt(0.0000001)
ほとんどのブラウザでは、結果は1(新版firefoxは0を得る)であり、これも明らかに期待されていない.理由は、パーrseInt(A)の第一歩がToString(A)を実行するからです.上記の例では、0.000001は「1 e-7」に変わります.後のことは全部知っているはずです.