2011-12-07 4 views
1

私はいくつかのJSをgoogles closureコンパイラで実行していて、それがどのように数値を処理するかについて気づいています。彼らは基底10以外のものに変換されているように見え、それが何であるかわからない。中JS Minification/Closureコンパイラは、基数10から何かに数値を変更しますか?

javascript:(function(){ 
var x = 30000; 
console.log(x); 
})(); 

結果:

(function(){console.log(3E4)})(); 

3E4の== 30000どのように?

答えて

4

これは、Scientific notationと呼ばれています。特に「E表記」の部分は、後で説明します。

基本的に、aEb === a * Math.pow(10, b)(これは構文エラーであろうけれども - abはリテラルでなければならない、bは偶数でなければなりません)。

3 * Math.pow(10, 4) === 30000; // true 

34これは実際に塩基とはほとんど関係を持っているだけでベース10です。

+0

意味があります - このためのJSリファレンスがありますか? – hafichuk

+1

http://en.wikipedia.org/wiki/JavaScript_syntax#Numberには、受け入れられたすべての数値形式が一覧表示されます。 – hafichuk

1

3e4は3を4桁の倍数で3回、または4桁で3と同じです。

関連する問題