Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
js_exams.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
359 Кб
Скачать
☆

Численное преобразование

Численное преобразование происходит в математических функциях и выражениях, а также при сравнении данных различных типов (кроме сравнений ===, !==). Операции инкремента или декремента над строкой приведут её к числу. Если значение, содержащиеся в строке не может быть расценено как число, то результатом выполнения инкремента или декремента над такой строкой будет специальное значение NaN типа number. Для явного преобразования можно использовать функции parseInt - для преобразования строки в целое число и parseFloat - для преобразования в дробное. Побитовые операторы приводят число к 32-разрядному целому.

Для преобразования к числу в явном виде можно вызвать Number(val), либо, что короче, поставить перед выражением унарный плюс "+":

let a = +"123"; // 123

let a = Number("123"); // 123

Значение

Преобразуется в

undefined

NaN

null

0

true/false

1 / 0

Строка

Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то 0, иначе из непустой строки "считывается" число, при ошибке результат NaN.

Специальные значения

Интуитивно, значения null/undefined ассоциируются с нулём, но при преобразованиях ведут себя иначе. Специальные значения преобразуются к числу так:

Значение

Преобразуется в

undefined

NaN

null

0

Это преобразование осуществляется при арифметических операциях и сравнениях >, >=, <, <=, но не при проверке равенства ==. В нём считается, что null и undefined равны "==" между собой, но эти значения не равны никакому другому значению. Это ведёт к забавным последствиям.

alert( null >= 0 ); // true, т.к. null преобразуется к 0

alert( null > 0 ); // false, т.к. null преобразуется к 0

alert( null == 0 ); // false, т.к. == рассматривает null особо.

alert( undefined > 0 ); // false, т.к. undefined -> NaN

alert( undefined == 0 ); // false, т.к. это undefined (без преобразования)

alert( undefined < 0 ); // false, т.к. undefined -> NaN

Логическое преобразование

Преобразование к true/false происходит в логическом контексте, таком как if(value), и при применении логических операторов.

Все значения, которые интуитивно «пусты», становятся false. Их несколько: 0, пустая строка, null, undefined и NaN. Остальное, в том числе и любые объекты – true.

Полная таблица преобразований:

Значение

Преобразуется в

undefined, null

false

Числа

Все true, кроме 0, NaN - false.

Строки

Все true, кроме пустой строки "" - false

Объекты

Всегда true

Для явного преобразования используется двойное логическое отрицание !!value или вызов Boolean(value).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]