базовый курс

ГРУППА КУРСА

Преобразование типов в JavaScript

Числа и строки

Большинство операторов могут работать только тогда, когда их операнды имеют одинаковый тип данных. Если операнды какого-то оператора имеют разный тип данных, то сначала они приводятся к одному типу и только потом выполняется оператор. Чаще всего в JavaScript производится преобразование строки в число, а также обратное действие.

Преобразование типов происходит по таким правилам: при сложении строки и числа, число преобразуется в строку.

+
9
document.write(10 + 'user');

Другие арифметические операторы преобразуют строку в число. Если строка состоит из цифр, то эти цифры преобразуются в число. В строке допускаются пробельные символы. Если в строке есть другие символы, то строка преобразуется в NaN.

10
11
document.write('<br>');
document.write(10 - '4'); //выведет: 6

Строка преобразовалась в число 4, а затем произведено вычисление.

12
13
document.write('<br>');
document.write(10 - 'f'); //выведет: NaN

Строка преобразована в NaN и дальнейшие вычисления выдают NaN.

Операторы сравнения в JavaScript преобразуют строку в число.

14
15
document.write('<br>');
document.write(8<'inf'); //выведет: false

Строка преобразована в NaN, сравнение с NaN возвращает false.

Если нужно отдельно преобразовать строку в число, то это можно сделать с помощью оператора "+":

16
document.write('<br>' + typeof(+'12'));

Нулевые значения

Существует несколько нулевых значений:

  • 0
  • пустая строка
  • false
  • null
  • undefined

Эти значения, кроме null и undefined, равны друг другу. Значения null и undefined равны друг другу, но больше не равны ничему.

17
18
19
20
21
22
23
24
document.write('<br>');
document.write(0 == ''); //выведет: true
document.write('<br>');
document.write(false == 0); //выведет: true
document.write('<br>');
document.write('' == null); //выведет: false
document.write('<br>');
document.write(null == undefined); //выведет true

Очевидно, что проверка на строгое равенство в этих случаях вернёт false.

Логический тип

В результате сравнения получаются данные логического типа. Есть операторы, которые в своей работе используют эти данные. Например, оператор if. Если такому оператору передать значение другого типа, то оно преобразуется в логический тип. Преобразование типов происходит так: нулевые значения преобразуются в false, остальные в true.

25
26
27
28
if (null)
document.write(' вывод при выполнении условия');
if (5)
document.write(' вывод если условие выполнится');

Первое условие не выполняется, потому что null соответствует значению false. А число 5 соответствует значению true, поэтому второе условие выполняется.