Javascript-If语句返回Null,不管条件如何
我试图弄明白为什么我的if语句发送的是true输出,尽管在if语句中考虑了null情况。有人能解释我的条件出了什么问题,以及为什么null触发true吗Javascript-If语句返回Null,不管条件如何,javascript,Javascript,我试图弄明白为什么我的if语句发送的是true输出,尽管在if语句中考虑了null情况。有人能解释我的条件出了什么问题,以及为什么null触发true吗 if(startDate || startDate != null){ filterQuery.push('dateStart=' + startDate); } 在存在空值的实例中输出dateStart=null。使用 if(typeof startDate !== "undefined") { 您已经知道,typ
if(startDate || startDate != null){
filterQuery.push('dateStart=' + startDate);
}
在存在空值的实例中输出dateStart=null
。使用
if(typeof startDate !== "undefined") {
您已经知道,
typeofstartdate
为您提供了“字符串”
。这就是您的问题:“null”
是一个真实值(因此它通过了第一次测试),即!=null
(因此它通过了第二次测试)。因此,您的条件为true,并且输出将字符串“null”
连接到错误消息。什么是类型的起始日期代码>返回?如果startDate
确实为null
,则该条件肯定为false。(如果startDate
为undefined
,则为false)它返回string,但不需要该条件的第一部分。不要告诉我是字符串“null”
,这将非常有趣。任何认为将字符串“null”
分配给变量是个好主意的人都会感到困惑。这与null
值有什么关系?这实际上将确保null
将被打印,这是OP不想要的。你们可能想检查一下这个很棒的调用。我应该先默认使用typeof
,然后再假设它是一个实际的null
值