Я сейчас смущен! оператор в JavaScript. Мое понимание было! оператор работает только с булевым. Но комментарий к одному из моих ответов говорит, что он может работать на что угодно и возвращает логическое значение, которое оказалось истинным после нескольких тестов.
alert(!undefined); //true
alert(!function(){}); //false
alert(!{}); //false
alert(!null); //true
alert(!()); //crash
alert(!"false"); //false
alert(!false); //true
Может кто-нибудь помочь мне обобщить поведение! Оператор.
ИЗМЕНИТЬ
Еще более запутанный материал:
alert( new String() == ""); //true
alert(!""); //true
alert(! new String()); //false
Как?