В JavaScript восклицательный знак (!) называется оператором «логического НЕ». Это унарный оператор, который работает с одним операндом и возвращает логическое значение, противоположное своему операнду. Операнд может иметь любой тип данных, а восклицательный знак преобразует его в логическое значение, а затем отрицает его.
Вот как работает логический оператор НЕ:
-
При применении к истинному значению (значению, которое считается истинным, если оно встречается в логическом контексте), восклицательный знак возвращает
false. Например:console.log(!true); // false console.log(!'hello'); // false console.log(!42); // false -
При применении к ложному значению (значению, которое считается ложным при обнаружении в логическом контексте) восклицательный знак возвращает
true. Например:console.log(!false); // true console.log(!0); // true console.log(!null); // true -
Если операнд не является логическим значением, восклицательный знак сначала преобразует его в логическое значение, а затем отменяет его. Преобразование следует определенным правилам:
не определено,null,0,NaNи пустая строка ('') считаются ложными.- Все остальные значения, включая непустые строки, числа, отличные от 0, и объекты, считаются правдивыми.
Вот несколько примеров:
console.log(!undefined); // true
console.log(!null); // true
console.log(!''); // true
console.log(!'non-empty string'); // false
console.log(!0); // true
console.log(!42); // false
console.log(!{}); // false
Используя логический оператор NOT, вы можете выполнять логическое отрицание, проверять наличие ложных значений и преобразовывать значения в их логические аналоги.