Why can't I do this:
var fooElement, barElements; if(fooElement = document.getElementById('foo') && barElements = fooElement.getElementsByTagName('bar') && barElements[0] && barElements[0].onclick) { console.log(barElements[0].onclick); }
This won't work either:
var foo, bar; if(foo = true && bar = true) { console.log('yay'); }
Why can't I do this:
var fooElement, barElements; if(fooElement = document.getElementById('foo') && barElements = fooElement.getElementsByTagName('bar') && barElements[0] && barElements[0].onclick) { console.log(barElements[0].onclick); }
This won't work either:
var foo, bar; if(foo = true && bar = true) { console.log('yay'); }Share Improve this question asked Aug 21, 2011 at 17:14 TyiloTyilo 30.2k41 gold badges122 silver badges201 bronze badges
2 Answers
Reset to default 10Try this (it should give you a clue):
var foo, bar;
if((foo = true) && (bar = true))
{
console.log('yay');
}
Check Operator Precedence,Use
if((foo = true) && (bar = true))
{
alert(foo);
}
UPD: Don't forget that following code will not set bar
to true because && is Short Circuit
operator
if((foo = false) && (bar = true))
{
alert(foo);
}
Sample