Найти в Дзене

Преобразование типа в логический в JavaScript

Вот такую картинку нарисовала мне нейросеть на запрос “логическое отрицание”. Прям Сальвадор Дали )))
Вот такую картинку нарисовала мне нейросеть на запрос “логическое отрицание”. Прям Сальвадор Дали )))

JavaScript легко и непринуждённо, автоматически и на лету преобразует типы данных (когда это вообще возможно). И программисту не нужно особо заботиться о преобразовании.

Правда, у этого есть другая сторона - программисту надо заботиться о том, чтобы результат этих автоматических преобразований соответствовал задаче.

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

Наверняка вы знаете, что такое логическое НЕ, или логическое отрицание. В JavaScript, как и в других похожих языках, эту операцию выполняет оператор !. Это унарный оператор, который помещается перед переменной или перед выражением, которое может вернуть результат логического типа.

Оператор ! инвертирует значение своего операнда, то есть меняет значение на противоположное. Например:

x = true;
z = !x; //z = false

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

ВНИМАНИЕ! Значение самой переменной х при этом не изменяется.

Вы можете применить операцию логического НЕ к выражению:

y = !(x && true);

Смысл будет тот же. Только сначала будет вычислен результат выражения, а потом уже к этому результату будет применена операция логического НЕ.

И вот с помощью этой операции мы можем преобразовать значение любого типа в логическое, дважды применив к нему операцию логического НЕ:

x = 50;
z = "Привет, МИР!";
z = !!x; //Здесь z уже логическая переменная

Почему дважды? А чтобы результат был правильным (исходным), то есть не инвертированным.

Кстати, вот это

z = !!z;

тоже будет работать.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.