Правда, не все числа меньше 264 помещаются в число JavaScript. В этих битах также хранятся отрицательные числа – поэтому, один бит хранит знак числа. Кроме того, нам нужно иметь возможность хранить дроби. Для этого часть бит используется для хранения позиции десятичной точки. Реальный максимум для чисел – примерно 1015, что в общем всё равно довольно много.
Дроби записываются с помощью точки.
9.81
Очень большие или маленькие числа записываются научной записью с буквой “e” (exponent), за которой следует степень:
2.998e8
Это 2,998 × 108 = 299800000.
Вычисления с целыми числами (которые также называются integer), меньшими, чем 1015, гарантированно будут точными. Вычисления с дробями обычно нет. Так же, как число π (пи) нельзя представить точно при помощи конечного числа цифр, так и многие дроби нельзя представить в случае, когда у нас есть только 64 бита. Плохо, но это мешает в очень специфических случаях. Важно помнить об этом и относиться к дробям как к приближённым значениям.
Арифметика
Главное, что можно делать с числами – это арифметические вычисления. Сложения и умножения используют два числа и выдают третье. Как это записывается в JavaScript:
100 + 4 * 11
Символы +
и *
называются операторами. Первый – сложение, второй – умножение. Помещаем оператор между двумя величинами и получаем значение выражения.
А в примере получается «сложить 4 и 100 и затем умножить результат на 11», или умножение выполняется сначала? Как вы могли догадаться, умножение выполняется первым. Но как и в математике, это можно изменить при помощи скобок:
(100 + 4) * 11
Для вычитания используется оператор -
, а для деления - /
.
Когда операторы используются без скобок, порядок их выполнения определяется их приоритетом. У операторов *
и /
приоритет одинаковый, выше, чем у +
и -
, которые между собой равны по приоритету. При вычислении операторов с равным приоритетом они вычисляются слева направо:
1 - 2 + 1
вычисляется как (1 - 2) + 1.
Пока беспокоиться о приоритетах не надо. Если сомневаетесь, используйте скобки.
Есть ещё один оператор, который вы не сразу узнаете. Символ %
используется для получения остатка. X % Y
– остаток от деления X
на Y
. 314 % 100
даёт 14, и 144 % 12
даёт 0. Приоритет у оператора такой же, как у умножения и деления. Математики для операции нахождения остатка от деления %
могут использовать термин сравнение по модулю.
Специальные числа
В JavaScript есть три специальных значения, которые считаются числами, но ведут себя не как обычные числа.
Это Infinity
и -Infinity
, которые представляют положительную и отрицательную бесконечности. Infinity - 1 = Infinity
, и так далее. Не надейтесь сильно на вычисления с бесконечностями, они не слишком строгие.
Третье число: NaN
. Обозначает «not a number» (не число), хотя это величина числового типа. Вы можете получить её после вычислений типа 0 / 0
, Infinity – Infinity
, или других операций, которые не ведут к точным осмысленным результатам.
Строки
Следующий базовый тип данных – строки. Они используются для хранения текста. Записываются они в кавычках:
"Что посеешь, то из пруда"
'Баба с возу, потехе час'
Можно использовать как двойные, так и одинарные кавычки – главное использовать их вместе. Почти всё можно заключить в кавычки и сделать из этого строку. Но некоторые символы вызывают проблемы. Например, сложно заключить кавычки в кавычки. Перевод строки тоже нельзя просто так заключить в них – строка должна идти одной строкой.
Для заключения специальных символов используется обратный слэш (\
). Он обозначает, что символ, идущий за ним, имеет специальное значение – это называется «экранирование символов» (escape character). \”
можно заключать в двойные кавычки. \n
обозначает перевод строки, \t
– табуляцию.
Строка “Между первой и второй\nсимвол будет небольшой”
на самом деле будет выглядеть так:
Между первой и второй
символ будет небольшой
Если вам нужно включить в строку обратный слэш, его тоже нужно экранировать: \\
. Инструкцию “Символ новой строки — это “\n””
нужно будет написать так:
"Символ новой строки – это \"\\n\""
Строки нельзя делить, умножать и складывать. Однако с ними можно использовать оператор +
, который будет соединять их друг с другом. Следующее выражение выдаст слово «соединение»: