2015-05-18 5 views
4

Примечание: это фактически дубликат What is the difference between if(!!condition) and if(condition)Не нет (!!) внутри, если условие

В то время как я понимаю what the !! means (double not), по этой же причине не имеет смысла для меня его использование in the MDN documentation:

if (!!window.Worker) { 
... 
} 

Разве это не так, как в этой ситуации?

if (window.Worker) { 
... 
} 

Отливка в булево не имеет смысла для меня, так как if будет выполняться только если window.Worker существует. Сказать, что это True или Object для if() условный (я думаю), то же самое.

Итак, почему здесь используется !!? Или, почему window.Worker литой в boolean внутри if()?

+0

Пожалуйста, обратитесь к оригиналу (связанный как дублирующий на самом деле дубликат): http://stackoverflow.com/questions/19818574/what-is-the-difference-between-ifcondition-and-ifcondition –

+2

Люди которые приходят с типизированных языков, неудобны по правде. Поэтому вы видите этот тип кода как своего рода документальный стиль «читаемого кода», который проверяет логическое значение, а не сам объект. Люди, которые привыкли к программированию javascript, обычно не делают этого. – slebetman

+0

@slebetman, поэтому для меня это не имело смысла! Ваш комментарий должен быть ответом, поскольку он не только объясняет, что это одно и то же, но одна возможная причина (: –

ответ

2

Да, это точно так же. Нечего добавить.

Возможно, это было использовано для того, чтобы подчеркнуть, что свойство window.Worker, которое ожидается как функция, приводится к булевому для обнаружения его присутствия, вместо того, чтобы выглядеть как забытый звонок (). Независимо от того, it is now gone.

+0

Приятное прикосновение! Я думаю, что у Бергуса есть и вы –

+1

Да, это я. Спасибо за сообщение :-) – Bergi

Смежные вопросы