if语句中的多个赋值

Tyi*_*ilo 8 javascript if-statement variable-assignment

为什么我不能这样做:

var fooElement, barElements;
if(fooElement = document.getElementById('foo') && barElements = fooElement.getElementsByTagName('bar') && barElements[0] && barElements[0].onclick)
{
    console.log(barElements[0].onclick);
}

这也不起作用:

var foo, bar;
if(foo = true && bar = true)
{
    console.log('yay');
}

Dan*_*ara 10

试试这个(它应该给你一个线索):

var foo, bar;
if((foo = true) && (bar = true))
{
    console.log('yay');
}
Run Code Online (Sandbox Code Playgroud)

  • 默认情况下,优先级是将赋值放在最后,以便首先计算所有&&语句.当你错误地使用=而不是==时很容易看到,如果考虑更常见地使用=和&&的组合,这是有意义的. (2认同)