Что такое двойное восклицание!! оператор означает?
Возможный дубликат:
Что такое!! оператора в JavaScript?
Что делает!! (двойной восклицательный знак) означает?
Я использую собственный код JavaScript на своем рабочем месте, и я не могу понять следующую конструкцию.
var myThemeKey = (!!$('row') && $('row').hasClassName('green-theme')) ? 'green' : 'white';
Я понимаю все в приведенной выше строке, кроме оператора !!
. Я предполагаю, что это оператор NOT
, а NOT
of NOT
- это исходное значение, но зачем кому-то делать NOT
из NOT
?
Может кто-нибудь, пожалуйста, помогите мне понять, что происходит на вышеуказанной строке кода?
Ответы
Ответ 1
!!
гарантирует, что результирующий тип является логическим (true или false).
javascript:alert("foo")
→ foo
javascript:alert(!"foo")
→ false
javascript:alert(!!"foo")
→ true
javascript:alert(!!null)
→ false
Они делают это, чтобы убедиться, что $('row')
не является нулевым.
Он короче, чем $('row') != null ? true : false
.