Perché non posso fare questo:assegnazioni multiple all'interno di se-dichiarazione
var fooElement, barElements; if(fooElement = document.getElementById('foo') && barElements = fooElement.getElementsByTagName('bar') && barElements[0] && barElements[0].onclick) { console.log(barElements[0].onclick); }
Questo non funzionerà neanche:
var foo, bar; if(foo = true && bar = true) { console.log('yay'); }
La precedenza di default sono per mettere l'assegnazione scorso, in modo che tutti le istruzioni && vengono calcolate per prime. Questo è facile da vedere quando usi erroneamente = piuttosto che ==, e ha senso se consideri l'uso più comune delle combinazioni di = e &&. –