Компилятор 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 нулями.