Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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相等返回false_Javascript_Equality - Fatal编程技术网

javascript相等返回false

javascript相等返回false,javascript,equality,Javascript,Equality,可能重复: 为什么`null>=0&&null类型null与number类型不可比较,因此返回false。根据规范(省略了关联案例): 如果类型相等,请使用特定于类型的比较 null==undefined为true 将数字和字符串作为数字进行比较,然后转换字符串 如果比较布尔值,则将其转换为数字并再次比较 如果将数字或字符串与对象进行比较,则该对象将转换为原语并再次进行比较-否,为Null,而不是对象(如中所示) 对于其他所有内容,返回false 为什么您希望它是true?因为null和0不相等

可能重复:

为什么`null>=0&&null类型
null
number
类型不可比较,因此返回
false
。根据规范(省略了关联案例):

  • 如果类型相等,请使用特定于类型的比较
  • null==undefined
    true
  • 将数字和字符串作为数字进行比较,然后转换字符串
  • 如果比较布尔值,则将其转换为数字并再次比较
  • 如果将数字或字符串与对象进行比较,则该对象将转换为原语并再次进行比较-否,为
    Null
    ,而不是对象(如中所示)
  • 对于其他所有内容,
    返回false

  • 为什么您希望它是
    true
    ?因为
    null
    0
    不相等。0是数字。空就是空。在这本书的第9页,作者认为这假设是真的。确切地说,它是。似乎
    null
    只能与自身进行比较,而且
    undefined
    @bfavareto
    null
    是一个对象,因此它应该是步骤8或9,而不是10。但是null属于object类型。这不清楚。是的,它不清楚,因为
    ToPrimitive(null)
    显然产生
    null
    @kojiro,bfavaretto:
    类型(null)
    不是
    对象
    ,而是
    null
    alert( "null==undefined:  " + (null == undefined) )
    alert( "null==0:          " + (null == 0) )       // why false??
    alert( "false=='':        " + (false == '') )
    alert( "true==1:          " + (true == 1) )
    alert( "true=='1':        " + (true == '1') )
    alert( "'1'==1:           " + ('1' == 1) )
    
    alert( "null===undefined:  " + (null === undefined) )
    alert( "null===0:          " + (null === 0) )  
    alert( "false==='':        " + (false === '') )
    alert( "true===1:          " + (true === 1) )
    alert( "true==='1':        " + (true === '1') )
    alert( "'1'===1:           " + ('1' === 1) )