1000 などの数値がコンパイル後に 1e3 のような形になる

  • Javascript

uglifyjs を使用して js のコードを圧縮していたのですが、ふと圧縮後のコードを見てみると 1000 の数値が 1e3 となっていました。一瞬16進数かと思ったんですが、桁も合わないしなんだろう調べてみると、どうやらこれは 1 * 10の3乗 = 1000 を表しているらしいです。( 2000 なら 2 * 10の3乗で 2e3 )

1000 だとまだ微妙ですが、桁数がどんどん増えていくごとにバイト数の節約になるということでこのような形になるみたいですね。モダンブラウザではこのフォーマットでも値を認識してくれるようですが、古いブラウザでは数値として認識してくれないみたいです。

とはいえ、uglifyjs のようなもので最適化している時点でそういった古いブラウザは対象外かとは思いますが…

参考

https://mathwords.net/ehyouki