if语句中的多个赋值

时间:2011-08-21 17:14:24

标签: 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');
}

2 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:2)

检查操作员优先顺序,使用

if((foo = true) && (bar = true))
{
    alert(foo);
}

UPD:不要忘记以下代码不会将bar设置为true,因为&&是Short Circuit运算符

if((foo = false) && (bar = true))
{
    alert(foo);
}

Sample