Я понимаю, что он древний и что многие из нас уже знают его, но в последние несколько дней я болтал со своим другом, который из мира «Явы», и он спросил меня: «Эй, для чего это используется? в джаваскрипте? И я решил оставить его здесь, если он пригодится другому смертному.
Простое объяснение. Мы используем двойной восклицательный знак, чтобы преобразовать значение в логическое значение и сделать ваш код простым и легко читаемым.
Примеры:
!!0 => false; !!null => false; !!"" => false; //Empty string !!22 => true; // lower tha cero !!2.2 => true; // also evaluate float // even to evaluate navigator const isIE8 = navigator.userAgent.match("/MSIE 8.0/"); => true
Сейчас. Зачем нам нужно использовать двойные восклицательные знаки?
Хотя мы знаем, что у нас также есть класс Boolean, и что он упрощает нашу жизнь, поскольку получает значение в качестве аргумента, и что раньше он делал то же самое и стал немного более читабельным. Но вот обсуждение многих разработчиков javascript. Некоторые из них считают, что использование «!!» короче, чем использование Boolean().
Однако другие считают, что логическое значение — это более явный способ приведения типов.
давайте посмотрим на следующий пример кода.
const isIE8 = navigator.userAgent.match("/MSIE 8.0/") if(Boolean(isIE8)){ // some stuff code }
Было бы намного лучше читать, не так ли, чем читать такой код, если вы не программист javascript?
const isIE8 = navigator.userAgent.match("/MSIE 8.0/") if(!!isIE8){ // some stuff code }
На мой взгляд, я предпочитаю использовать класс Boolean, потому что он намного лучше читается, и если бы я хотел быстро проверить, пуста ли строка, и дополнить ее тройным знаком, я бы использовал двойной восклицательный знак.
Хорошо!! Я надеюсь, что этот пост мог помочь вам развеять ваши сомнения по этому поводу.
Спасибо за чтение!!!
ПРИМЕЧАНИЕ. Попробуйте посмотреть на это как на математическую формулу плюс к плюсу ( + * + = +)
ссылка:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT#double_not_!!