Не могу понять как работают анонимные функции в условиях.
Вот пример:
var z = true
if(z == true && function() {alert("a");return true})alert("b");
Мне казалось, что логичным было бы сначала вывести "a", а затем "b". Так нет! Он выводит только "b". Если мы поменяем в функции return на false, то ничего не изменится! То есть функция по-любому возвращает true? Что за чертовщина? И в чем я запутался?