JavaScript中== 和 === 的区别

JavaScript

== 和 === 的区别

  • "==="严格运算符,"=="相等运算符
  • 建议尽量不要使用相等运算符
  • 严格运算符:
    1.不同类型 ->false
    2.同一类的原始类型值(数值、字符串、布尔型)
    值相同时->true
    3.同一类的复合类型值(对象、数组、函数)
    指向同一对象->true
    4.undefine 和 null
null === null //true
undefine === undefine //true
null === undefine //false
  • 相等运算符(先类型转换,再用“===”比较)
  1. 原始类型
    原始类型的数据会转换成数值类型再进行比较。字符串和布尔值都会转换成数值。
  2. 对象与原始类型值比较
    对象(这里指广义的对象,包括数值和函数)与原始类型的值比较时,对象转化成原始类型的值,再进行比较。
new String("123")==="123"//false
new String("123")=="123"//true
new String("123")==123//true
  1. undefined和null
    undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true。
  2. 相等运算符的缺点
    相等运算符隐藏的类型转换,会带来一些违反直觉的结果。

你可能感兴趣的:(JavaScript中== 和 === 的区别)