Java Script зачем в выражении присваивания восклицательный знак?
!0 -> true
!1 -> false
экономия на символах? :)
Берем консоль браузера, пишем "!0" - получаем "true", пишем "!1" - получаем "false".  По моим личным догадкам: "!0" - 2 символа, "true" - 4 символа. С "!1" аналогично.