0

Объясните пожалуйста работу сдвоенного оператора JS !! Вот тут: https://habr.com/ru/sandbox/44911/

автор пишет : "!!" — является проверкой как определена ли переменная и является истиной, а "!!!" — как определена переменная и является ложью.

if(!!undefinedVar)
  alert("Not undefined");
else
  alert("Undefined");

Если запустить предлагаемый пример кода - то мы ничего не увидим ибо в консоли сразу вылетает Error: Uncaught ReferenceError: undefinedVar is not defined

Я подумал что пример устарел (2012 год) Но вот тут (2018 год): https://habr.com/ru/post/421817/

автор по прежнему использует тот же фрагмент кода:

className={cx('label', !!labelClass && labelClass)}

Объясните пожалуйста зачем используется сдвоенный оператор !!

1 Answers1

1

допустим ситуацию, что переменная может быть не задана, т.е. undefined, так вот чтобы не было ошибок в коде, например, если у Вас проверка if(!!var) {...}, то первый ! превращает undefined в true, а второй ! впревращает в false, т.е. получается, что переменной нет и код работает, надеюсь понятно объяснил)

let x;
console.log(x);

if (!!x) { console.log('не сработает'); } else { console.log(!!x); console.log('сработает'); }

meine
  • 7,394
  • Спасибо! В предыдущем примере кода я не определил переменную и поэтому вышел Error. Теперь все ясно! – Gayrat Vlasov Jul 26 '19 at 10:31