Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
06 Июл 2023
2 мин
1785

Оператор «!!» в JavaScript

В JavaScript часто встречается оператор «!!». Например, этот оператор может быть использован в следующем контексте: В таком случае возникает вопрос:

В JavaScript часто встречается оператор «!!». Например, этот оператор может быть использован в следующем контексте:

let isActive = !!user.active;

В таком случае возникает вопрос: что же делает этот оператор?

Оператор «!» в JavaScript — это логический оператор «НЕ». Он возвращает «true», если операнд является false, и «false», если операнд является true. То есть он инвертирует булево значение операнда.

let isActive = !user.active; // Если user.active было true, то isActive будет false, и наоборот

Но что, если использовать два таких оператора подряд, как в первом примере?

Оператор «!!» — это просто двойное применение оператора «!». Вначале первый оператор «!» инвертирует булево значение операнда, затем второй оператор «!» снова инвертирует его. В итоге получается исходное булево значение операнда.

let isActive = !!user.active; // Если user.active было true, то isActive будет также true, и наоборот

Возникает вопрос: зачем это нужно, если можно просто написать let isActive = user.active;?

Ответ прост: оператор «!!» используется для преобразования любого значения в булево. Если user.active — это не булево значение, а, например, строка, число или объект, то оператор «!!» преобразует его в булево значение. Если значение можно интерпретировать как «истина» (например, непустая строка или число, отличное от нуля), то результат будет true. В противном случае — false.

let isActive = !!'hello'; // isActive будет true, потому что 'hello' - это непустая строка
let isZero = !!0; // isZero будет false, потому что 0 интерпретируется как "ложь"

В итоге, оператор «!!» в JavaScript — это удобный способ преобразовать любое значение в булево.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий