Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在if语句中,undefined等于false_Javascript_If Statement_Undefined - Fatal编程技术网

Javascript 在if语句中,undefined等于false

Javascript 在if语句中,undefined等于false,javascript,if-statement,undefined,Javascript,If Statement,Undefined,我对下面的代码感到困惑: if(undefined){ //code will not be executed } 及 这是否意味着“未定义”等于false 此处相关,但上面没有一点指出。这意味着未定义的是一个错误值,错误值列表如下: "" // Empty string null // null undefined // undefined, which you get when doing: var a; false // Bool

我对下面的代码感到困惑:

if(undefined){
   //code will not be executed
}

这是否意味着“未定义”等于false


此处相关,但上面没有一点指出。

这意味着
未定义的
是一个错误值,错误值列表如下:

""        // Empty string
null      // null
undefined // undefined, which you get when doing: var a;
false     // Boolean false
0         // Number 0
NaN       // Not A Number eg: "a" * 2
如果你否定一个错误的值,你会得到正确的结果:

!""        === true
!null      === true
!undefined === true
!0         === true
!NaN       === true
当你唠叨一个真实的价值观时,你会变得虚假:

!"hello" === false
!1       === false
但是
undefined
不等于
false

undefined === false // false
undefined  == false // false
只是为了好玩,如果:

undefined == null // true

在javascript严格模式下,
undefined
不是false,但是javascript尝试将对象或变量转换为
boolean
值(这在javascripttruthy value中调用),这就是将
undefined
设置为false的原因。例如,null也会发生这种情况

您可以强制使用以下严格的不平等:

if(undefined!==false) console.log("Is not false"); 

请查看以下检查的falsy值:

""==false?
    Ans: true
null == false?
    Ans: false
undefined == false?
    Ans: false
0 == false?
    Ans: true
NaN == false?
    Ans: false
null == NaN?
    Ans: false
我们可以看到
null==false
undefined==false
null==NaN
,和
NaN==false
都不是
true
这意味着他们不平等。根据上述结果,我们得到了3个falsy值组:

  • 虚假群体
  • 空组和
  • 南集团
  • 但负的falsy值总是正确的:

    !""        === true
    !null      === true
    !undefined === true
    !0         === true
    !NaN       === true
    
    例如: 检查
    true
    变量的
    dataTitle

    if(dataTitle && (dataTitle != null))
    {
        console.log('hi');
    }
    
    if(!dataTitle)
    {
        console.log('hi');
    }
    
    //or 
    
    if(dataTitle==null || dataTitle===false)
      console.log('hi');
    
    上面的语句将检查false组和null组

    检查
    false
    变量的
    dataTitle

    if(dataTitle && (dataTitle != null))
    {
        console.log('hi');
    }
    
    if(!dataTitle)
    {
        console.log('hi');
    }
    
    //or 
    
    if(dataTitle==null || dataTitle===false)
      console.log('hi');
    

    Javascript中
    undefined
    的真实值为
    false
    。因此,您看到的行为。
    Boolean(未定义)
    false
    。但是您的注释应该是interchanged@FastSnail这是不是意味着if语句将切换内部传递给它的每个参数?我的意思是,就像这样:`if(Boolean(parameter)){//code}`,对吗?@XheldonCao如果您传递一个非布尔值,那么是。javascript使用
    Boolean()
    函数获取布尔值,因为if条件需要一个布尔值value@FastSnail现在我知道了,谢谢你们!我很震惊,
    undefined==false
    给出了
    false
    !怎么会?我在哪里能读到它?@Marecky网站上有一篇很好的评论