Двойное восклицание JS - есть ли веская причина для его использования?

Я обсуждал эту тему с коллегой около недели. Я очень люблю сокращенный код, использующий троичные файлы и т. Д. Везде, где это возможно. В последнее время он приставал ко мне из-за того, что я использую двойные восклицания. Проведя многочисленные тесты, я начинаю соглашаться с ним ... двойные восклицания, возможно, нецелесообразно использовать в моем коде. Учтите это:

var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");

Приведенный выше пример работает должным образом. Однако, если мы проверяем переменную, которая может возвращать undefined, мы получаем ошибку, особенно в IE7. Однако мы получим ожидаемый результат, если запустим это в нашей консоли:

if(randomvar) alert('Works');

При таком подходе, если переменная не определена, происходит тихая ошибка. Это заставляет меня вообще сомневаться в использовании двойных восклицаний. Есть ли ситуация, которая действительно делает этот оператор выгодным?

6
задан Steve 19 September 2011 в 20:12
поделиться