This question already has answers here:
Assign variable in if condition statement, good practice or not? [closed]
                                
                                    (11个答案)
                                
                        
                                2年前关闭。
            
                    
如何在一个if语句中分配变量并检测结果是否为null或false?



function getNodes(selector) {
    var nodeList = document.querySelectorAll(selector);
    if(!nodeList.length) { return null; } else { return nodeList; }
}

var divs;

if( ! divs = getNodes('div') ) { // ReferenceError: invalid assignment left-hand side
    console.log('no divs found');
}

if( divs = getNodes('div') && !divs ) {  // does not work
    console.log('no divs found');
}

if( divs = getNodes('div') && divs==null ) {  // does not work
    console.log('no divs found');
}

<p>
no divs here
</p>





if(divs = getNodes('div'))确实可以工作,但这不是我追求的目标。我需要捕获它是否为null或在一条语句中分配它。

解决方案1 ​​if( !(divs = getNodes('div')) )

解决方案2 if( (divs = getNodes('div')) == null )

谢谢大家

最佳答案

divs = getNodes('div')基本上将返回分配给divs的值。
这样便可以执行a = b = 2

就您而言,您基本上可以做到:

因此,((div = getNodes('div')) == null)评估为true

也就是说,您基本上可以做到:

if((div = getNodes('div')) === null){
    //do Whatever
}


或者,如果您只想检查它的null值,并且知道它永远不会评估为false(或者false也是一个错误条件),则可以:

if(!(div = getNodes('div'))){
    //do whatever
}

09-19 11:06