базовый курс

ГРУППА КУРСА

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

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

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

+
1
2
3
4
5
6
7
8
<!DOCTYPE html>
<html>
<head>
<title>Страница</title>
<meta charset="utf-8">
</head>
<body>
<script>
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, поэтому второе условие выполняется.