let hexValue = parseInt('FFFFFF', 16);
let octalValue = parseInt('011', 8);
Функция parseInt получает шестнадцатеричное или восьмеричное значение, сопровождаемое основанием, из которого вы производите преобразование.
Особые значения — Infinity и NaN
Последним, что мы рассмотрим, будут два глобальных свойства, с которыми вам предстоит сталкиваться и которые не являются числовыми значениями. Это Infinity (бесконечность) и NaN (не число):
Infinity
Вы можете использовать значения Infinity и — Infinity для определения бесконечно больших и бесконечно малых чисел:
let myLoveForYou = Infinity * 2;
На деле вы вряд ли будете часто использовать Infinity. Чаще такие значения могут быть возвращены в результате выполнения кодом каких-то задач. Например, если вы разделите на 0, то в качестве результата будет возвращено именно значение Infinity.
NaN
Ключевое слово NaN обозначает «не число» и возвращается, когда вы пытаетесь произвести недопустимую вычислительную операцию. Например:
let nope = 1920 / "blah";
В данном случае будет возвращено NaN, так как нельзя делить число на строку. Существуют простые случаи, в которых это будет происходить, и некоторые из них мы рассмотрим позднее.
Получение числа из строки
Иногда у вас будут числа, заключенные внутри строк. Чтобы подробно ознакомиться с этой темой, прочтите статью «Получение числа из строки» (https://www.kirupa.com/html5/going_from_a_string_to_a_number.htm).
Объект Math
Числа используются во множестве математических выражений, которые зачастую выходят за рамки простого сложения, вычитания, умножения и деления. Если бы в курсе математики читали только перечисленное выше, все было бы проще. Для упрощения выполнения сложных операций с числами как раз и служит объект Math. Он предлагает множество удобных функций и констант, мы же вкратце рассмотрим, на что он способен.
Скукота!
Буду с вами честен. Разбор всех предлагаемых объектом Math возможностей был бы скучен. Если вы не фанат этой темы, то я предлагаю пробежаться по следующим разделам и возвращаться к ним уже по мере необходимости. Объект Math никуда не уйдет — друзей у него нет, поэтому он будет преданно ждать вас и никуда не денется.
Константы
Чтобы избавить вас от необходимости определять такие математические постоянные, как число π, постоянная Эйлера, натуральный логарифм и т. д., объект Math определяет большинство распространенных констант за вас (табл. 16.2).
Табл. 16.2. Константы
Использование
Что обозначает
Math.E
Постоянная Эйлера
Math.LN2
Натуральный логарифм 2
Math.LN10
Натуральный логарифм 10
Math.LOG2E
Log E по основанию 2
Math.LOG10E
Log E по основанию 10
Math.PI
3,14159 (это все, что я помню, и мне лень искать остальное!)
Math.SQRT1_2
1
2
Math.SQRT2
2
Из всех этих констант я чаще всего использовал Math.PI:
Ее вы будете использовать везде, от рисования кругов на экране и до определения тригонометрических выражений. Честно говоря, даже и не помню, использовал ли я вообще другие константы. Вот пример функции, возвращающей длину окружности по заданному радиусу:
function getCircumference(radius) {
return 2 * Math.PI * radius;
}
console.log(getCircumference(2));
Используется Math.PI и все прочие константы так же, как и любая переменная с именем.
Округление чисел
Ваши числа часто будут содержать ненужную точность:
let position = getPositionFromCursor(); // 159.3634493939
Чтобы облегчить округление таких чисел до разумного целочисленного значения, используются функции Math.round(), Math.ceil() и Math.floor(), в которые число передается в виде аргумента (табл. 16.3).
Табл. 16.3. Функции округления
Функция
Действие
Math.round()
Возвращает число, округленное до ближайшего целого числа. При этом округление происходит вверх, если аргумент больше или равен 0,5. Если аргумент меньше 0,5, округление производится до текущего целого числа