This question already has answers here:
Assign variable in if condition statement, good practice or not? [closed]
(11个答案)
2年前关闭。
如何在一个if语句中分配变量并检测结果是否为null或false?
解决方案1
解决方案2
谢谢大家
或者,如果您只想检查它的null值,并且知道它永远不会评估为false(或者false也是一个错误条件),则可以:
(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