Выбрать главу

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, округление производится до текущего целого числа