JavaScript中==与===的区别

===叫做严格运算符 ,==叫做相等运算符.

严格运算符===规则:

  • 基本类型

    • 第一步:比较类型.判断前后顺序的的类型值,如果俩个值的类型不同,则该表达式的直接返回False.
    • 第二步:比较值.类型值相同(Number,String,Boolean)时,判断值相同时返回True,否则返回False.
    • undefined和null与自身严格相等.
  • 复杂类型

    复杂类型(对象,数组,函数)进行严格模式比较时,比较它们的指针是否指向同一个对象,而不是比较它们的值是否相同.

相等运算符==规则:

  • 基本类型,转换类型String,Boolean都先转化为Number类型,然后判断值相同时返回True,否则返回False.
  • 复杂类型(对象,数组,函数),先转化为基本类型,然后再进行比较.
  • undefined和null之间相等.而且不等于任何基本类型.
  • null == undefined
posted @ 2019-12-28 21:46  Scok  阅读(581)  评论(0编辑  收藏  举报