zoukankan      html  css  js  c++  java
  • JavaScript中的==和===区别?null和undifined区别?null==undifined的结果?

    1.区别:

      ==只比较数值,在比较的过程中数据可进行数据类型转换

      ===比较值和数据类型,在比较的过程中数据不可进行数据类型转换

    2.null和undifined区别

      null表示无的对象,此处没有值,null用来占位的,转换Number类型为0,typeof(null)为object

      undifined表示缺少值,即此处应该有值,但没有定义,转换为Number类型为NaN,typeof(undifined)为undifined

    3.null和undifined比较

      null==undifined是true

      null===undifined是false

      原因:在代码规范中提到, 要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,并且规定null 和 undefined 是相等的。null 和 undefined都代表着无效的值。

    如果不是相等性比较:

      null>0   //null转化为number,为0,所以0>0结果为false。
      null>=0 //null转化为number,为0>=0,所以结果为true。
      null==0 // null在做相等性判断时,不进行数据类型转换,所以null和0为不同类型数据,结果为false

    4.==比较运算符底层细节

      如果x是null,y是undifined,返回true;

      如果x是数值,y是字符串,返回x==Number(y)的比较结果;

      如果x是布尔值,返回Number(x) == y的比较结果

      如果x是字符串或数值或Symbol值,y是对象,返回x == ToPrimitive(y)的结果

      以上情况不满足结果都是false

    例如:'a' == true

      1.首先一方是布尔值true先转为数值型为1,'a' == 1

      2.然后字符串需要转为数值型,a转为NaN,比较NaN==1 结果为false

      

     

     

  • 相关阅读:
    在Ubuntu上安装Mono
    CSS 外边距(margin)重叠及防止方法
    如何通过 iframe 共享 jQuery $.data?
    给ajax表单提交数据前面加上实体名称
    发布web应用程序是出现unsafe code
    ASP.NET MVC 基于页面的权限管理
    jquery旋转图片
    artTemplate子模板include
    JS调试必备的5个debug技巧_javascript技巧
    jQuery中position()与offset()区别
  • 原文地址:https://www.cnblogs.com/cqweb/p/14138357.html
Copyright © 2011-2022 走看看