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呢?

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

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

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

  • 相关阅读:
    每日口语(6.12)
    The usage of thumb
    Chart相关网站
    每日口语(6.14)
    我为世界杯狂
    一个很简单的javascript问题,看你能否答对
    【转】理解伪元素:Before和:After
    JS BOM之location.hash详解
    JS BOM之location对象
    JS BOM之location.hash的用法
  • 原文地址:https://www.cnblogs.com/xiabaoying/p/6527567.html
Copyright © 2011-2022 走看看