Data structures Flashcards
(5 cards)
Infinity
alert( 1 / 0 ); // Infinity
alert( 12345 / 0 ); // Infinity
Infinity – особенное численное значение, которое ведет себя в точности как математическая бесконечность ∞.
Infinity больше любого числа.
Добавление к бесконечности не меняет её.
alert( Infinity > 1234567890 ); // true
alert( Infinity + 5 == Infinity ); // true
Бесконечность можно присвоить и в явном виде: var x = Infinity.
Бывает и минус бесконечность -Infinity:
alert( -1 / 0 ); // -Infinity
NaN
Если математическая операция не может быть совершена, то возвращается специальное значение NaN (Not-A-Number).
Например, деление 0/0 в математическом смысле неопределено, поэтому его результат NaN:
alert( 0 / 0 ); // NaN
Значение NaN используется для обозначения математической ошибки и обладает следующими свойствами:
Значение NaN – единственное, в своем роде, которое не равно ничему, включая себя.
Следующий код ничего не выведет:
if (NaN == NaN) alert( “==” ); // Ни один вызов
if (NaN === NaN) alert( “===” ); // не сработает
Значение NaN можно проверить специальной функцией isNaN(n), которая преобразует аргумент к числу и возвращает true, если получилось NaN, и false – для любого другого значения.
Значение NaN «прилипчиво». Любая операция с NaN возвращает NaN.
alert( NaN + 1 ); // NaN
Если аргумент isNaN – не число, то он автоматически преобразуется к числу.
isFinite(n)
В JavaScript есть обычные числа и три специальных числовых значения: NaN, Infinity и -Infinity.
Функция isFinite(n) преобразует аргумент к числу и возвращает true, если это не NaN/Infinity/-Infinity:
alert( isFinite(1) ); // true
alert( isFinite(Infinity) ); // false
alert( isFinite(NaN) ); // false
Преобразование к числу
Большинство арифметических операций и математических функций преобразуют значение в число автоматически.
Для того, чтобы сделать это явно, обычно перед значением ставят унарный плюс ‘+’
При этом, если строка не является в точности числом, то результат будет NaN:
alert( +”12test” ); // NaN
Единственное исключение – пробельные символы в начале и в конце строки, которые игнорируются
isNaN преобразовывает к числу 0 также:
false, true, “”, null
Продвинутая проверка на число:
function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); }
Форматирование чисел
Форматирование
Для красивого вывода чисел в стандарте ECMA 402 есть метод toLocaleString():
var number = 123456789;
alert( number.toLocaleString() ); // 123 456 789