zoukankan      html  css  js  c++  java
  • JS中undefined与null的有趣 关系

    今天学习中遇到了一个有意思的问题。

    var obj = undefined
    

     我们将一个对象设置为undefined

    typeof(obj)
    >>undefined

      结果是undefined,可是这个时候我灵光一现,想起null这个对象了

    typeof(null)
    >>object
    

      结果是object!

      本小姐手一抖,进行了二者等值比较,更奇怪的事情出现!

    obj == undefined
    >> true
    obj == null
    >> true
    obj === undefined
    >>true
    obj === null
    >>false
    

      我当时的表情是这样的:

      这不能放弃治疗啊,紧接着我又对null开始了等值比较

    null == null 
    >> true
    null === null
    >> true
    null  == undefined
    >> true
    null === undefined
    >>false
    

      这个时候我的表情已经是这样了:

      

      我要吃包辣条压压惊 -.-

      那么到底为什么null是个object,而undefined却是undefined呢?

      查了一下,原来null是一个不存在的对象的占位符,发明js大牛研究的时候打瞌睡了,是个小失误,但是后人一直就这么沿用下来,ECMAScript也就这么用了。

      可是又是为什么null == undefined, null!=== undefined呢?

          我们先了解一下  == 和 === 

      对其,百度的结果是 == 是指将其转换为同类型,看值相等部相等。 ===则不转换类型,类型不同就是不等。

      还是知识不到家,默默吃个瓜@.@

  • 相关阅读:
    CodeForces 460B
    CodeForces 456A
    CodeForces462B
    HDU1394(线段树||树状数组)
    HDU1541(树状数组)
    HDU1556(树状数组)
    HDU5726(RMQ&&二分)
    POJ1182(并查集)
    HDU4496(并查集)
    HDU3038(并查集)
  • 原文地址:https://www.cnblogs.com/xiabaoying/p/6527567.html
Copyright © 2011-2022 走看看