Компилятор JS Minification / Closure изменяет числа с базы 10 на что-то еще?

Я запускаю JS через компилятор googles closure и заметил кое-что о том, как он обрабатывает числа. Кажется, что они преобразованы в нечто иное, чем база 10, и я не могу понять, что это такое.

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

Результаты в:

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

Как это 3E4 == 30000?

2 ответа

Решение

Это называется научная нотация, особенно часть "E нотация" - это то, что вам нужно.

В принципе, aEb === a * Math.pow(10, b) (хотя это будет синтаксическая ошибка - a а также b должны быть литералами, b даже должно быть целым числом).

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

3 а также 4 только в базе 10. Это имеет мало общего с базами на самом деле.

3e4 - это то же самое, что "высказывание" 3, умноженное на 4 порядка, или 3 с 4 нулями.

Другие вопросы по тегам