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

      

     

     

  • 相关阅读:
    My first blog in cnblog
    浅析JavaScript中this储存
    input 文本框密码框的只读属性
    Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()
    jquery使用$.getJson()跨域大数据量请求方法
    JS中关于clientWidth offsetWidth scrollWidth 等的含义及区别
    JS性能优化
    npm 创建 node.js 项目
    css 垂直居中的几种方法
    字符串转数组
  • 原文地址:https://www.cnblogs.com/cqweb/p/14138357.html
Copyright © 2011-2022 走看看