базовый курс

ГРУППА КУРСА

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

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

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

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

+
9
console.log(10 + 'user');

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

10
console.log(10 - '4'); //выведет: 6

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

12
console.log(10 - 'f'); //выведет: NaN

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

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

14
console.log(8 < 'inf'); //выведет: false

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

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

16
console.log(typeof(+'12'));

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

Существует несколько нулевых значений: 0, пустая строка, false, null, undefined. Эти значения, кроме null и undefined, равны друг другу. Значения null и undefined равны друг другу, но больше не равны ничему.

18
19
20
21
console.log(0 == ''); //выведет: true
console.log(false == 0); //выведет: true
console.log('' == null); //выведет: false
console.log(null == undefined); //выведет true

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

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

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

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

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