JavaScript легко и непринуждённо, автоматически и на лету преобразует типы данных (когда это вообще возможно). И программисту не нужно особо заботиться о преобразовании.
Правда, у этого есть другая сторона - программисту надо заботиться о том, чтобы результат этих автоматических преобразований соответствовал задаче.
Ну и в некоторых случаях всё равно требуется явное преобразование. Его можно выполнить разными способами. Но сегодня об одном способе, о котором догадается не каждый - о преобразовании значение любого типа в тип логический.
Наверняка вы знаете, что такое логическое НЕ, или логическое отрицание. В JavaScript, как и в других похожих языках, эту операцию выполняет оператор !. Это унарный оператор, который помещается перед переменной или перед выражением, которое может вернуть результат логического типа.
Оператор ! инвертирует значение своего операнда, то есть меняет значение на противоположное. Например:
x = true;
z = !x; //z = false
После этого в переменной z будет значение false, потому что мы записали туда результат логической операции НЕ над переменной х, которая имеет значение true.
ВНИМАНИЕ! Значение самой переменной х при этом не изменяется.
Вы можете применить операцию логического НЕ к выражению:
y = !(x && true);
Смысл будет тот же. Только сначала будет вычислен результат выражения, а потом уже к этому результату будет применена операция логического НЕ.
И вот с помощью этой операции мы можем преобразовать значение любого типа в логическое, дважды применив к нему операцию логического НЕ:
x = 50;
z = "Привет, МИР!";
z = !!x; //Здесь z уже логическая переменная
Почему дважды? А чтобы результат был правильным (исходным), то есть не инвертированным.
Кстати, вот это
z = !!z;
тоже будет работать.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.