2016-11-11 3 views
-1

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

Из того, что я понимаю, он преобразует значение в булево. Так скажем, у меня есть следующий код:

var myBool = !!(index === 0 || index > len); 

я не могу просто оставить вне !! и я получить тот же результат:

var myBool = (index === 0 || index > len); 

Что я получаю, добавив !!? Разве это уже булевая вола?

+0

Хорошо, что вы не поняли в другом вопросе? Если это уже логическое значение, это не имеет никакого смысла. –

+1

Вы получите тот же результат. В этом случае он избыточен. – vlaz

+0

@ Бармар, я только что закрыл его и снова открыл. Вы читали, что написал OP? –

ответ

5

Цель !! состоит в том, чтобы канонизировать любые значения правды или значения false для соответствующего булевского значения.

Если значение уже известно как логическое, например, результат оператора сравнения, нет смысла в нем, и он избыточен. Так что это бесполезно в примере, который вы дали.

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