Javascript 在if语句中分配变量并检测空值

Javascript 在if语句中分配变量并检测空值,javascript,Javascript,我们如何分配一个变量,并在一个if语句中检测结果是null还是false 函数getNodes(选择器){ var nodeList=document.queryselectoral(选择器); if(!nodeList.length){return null;}else{return nodeList;} } var divs; 如果(!divs=getNodes('div')){//ReferenceError:左侧的赋值无效 console.log(“未找到divs”); } 如果(di

我们如何分配一个变量,并在一个if语句中检测结果是null还是false

函数getNodes(选择器){
var nodeList=document.queryselectoral(选择器);
if(!nodeList.length){return null;}else{return nodeList;}
}
var divs;
如果(!divs=getNodes('div')){//ReferenceError:左侧的赋值无效
console.log(“未找到divs”);
}
如果(divs=getNodes('div')&&&!divs){//不起作用
console.log(“未找到divs”);
}
如果(divs=getNodes('div')&&divs==null){//不起作用
console.log(“未找到divs”);
}

这里没有潜水艇

这应该可以完成您想要完成的任务

函数getNodes(选择器){
var nodeList=document.queryselectoral(选择器);
if(!nodeList.length){return null;}else{return nodeList;}
}
var divs;
if(!(divs=getNodes('div')){//ReferenceError:左侧的赋值无效
console.log(“未找到divs”);
}
控制台日志(divs)
divs=getNodes('div')
基本上会返回分配给
divs
的值。 这就是你能做的
a=b=2

在您的情况下,您基本上可以做到:

if((div = getNodes('div')) === null){
    //do Whatever
}
因此,
((div=getNodes('div'))==null)
的计算结果为
true

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

if((div = getNodes('div')) === null){
    //do Whatever
}
或者,如果您只想检查它是否为null,并且您知道它永远不会计算为false(或者如果false也是一个错误条件),您可以:

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

通过将赋值包装在括号中(在第一个if中)将其转换为表达式。您不能先赋值变量,然后再进行检查吗?var divs=getNodes('div');如果(!divs)//falsy@d30jeff当然可以,但我正试图同时做到这两件事。@Teemu就是这样,谢谢!一步到位的好处是什么,而不是不可读?