Javascript 同时对变量执行Null和未定义检查

Javascript 同时对变量执行Null和未定义检查,javascript,Javascript,我有如下JavaScript方法 function showMsg(id) { if(id==null && id== undefined) //doing some task } 此showMsg(id)是从不同的事件调用的,id具有一些值,但onLoad事件不需要任何参数,因此我在onLoad事件上调用此方法,如下所示 function onLoading(){ showMsg(null); } 在Java脚本中,如果我们声明了一个变量,并且没有给它赋值,那

我有如下JavaScript方法

function showMsg(id) {
 if(id==null && id== undefined)
  //doing some task
}
showMsg(id)
是从不同的事件调用的,
id
具有一些值,但
onLoad
事件不需要任何参数,因此我在
onLoad
事件上调用此方法,如下所示

function onLoading(){
    showMsg(null);
}
在Java脚本中,如果我们声明了一个变量,并且没有给它赋值,那么它将是未定义的

我的问题是,是否有任何情况下,
if(id==null&&id==undefined)
在被调用为
showMsg(null)时将为false来自
onload()
方法

它是否会导致任何性能问题,以及使用这种检查的利弊

任何帮助建议都必须提前告知,谢谢。

如果(var!=null)
使用


=
将进行两项检查:if not
undefined
和not
null

“if
id
null
undefined
”?同时?永远不会是这样。它只是碰巧起作用,因为您使用的是松散的
=
比较,它匹配所有错误的值。你也可以只做
!相同结果的id
。如果你真的只想检查
null
undefined
,特别是如果我像showMsg(null)那样打电话,你必须做
id==null | | id==undefined
@deceze;在本用例中,如果(id==null&&id==undefined)变为false,条件是否会变为false?@deceze
==
如果变量不存在,则可能会中断,他必须使用
typeof
@Mr.Alien,因为
id
被定义为函数参数,它将存在。只有它的值是
未定义的
@deceze足够公平。。只是说不管他的代码。。只是跟标题一起…也检查一下这个:还有这个