美文网首页
JavaScript == 相等运算符自动转换的4种简单情形

JavaScript == 相等运算符自动转换的4种简单情形

作者: tutututudou | 来源:发表于2022-02-18 14:19 被阅读0次

情景1:比较数字和字符串

比较数字和字符串时,都要将字符串转换为数据,再两个数字进行比较

比如无法转换为数字,是字符串转换为NaN

99 == "what" 
99 == NaN
false 

因为用== 试图将 what 字符串转换为数字,结果是NaN,NaN和任何东西都不相等,最终结果为false

情景2:比较布尔值和其它类型

将布尔值转换为数字,再进行比较

true 转换为1,false转换为0

1 == true
1 == 1
true

** 布尔值和一字符串比较 **

"1" == true
"1" == 1
1 == 1
true

字符串转换为数字,布尔值转换为数字

情景3:比较null和undefinded

这两个值比较的结果都是true
undefinded == null 
true

情景4:

对象的比较后面介绍,个别情况
1 == ""
1 == 0
false

""这是数字和一个字符串比较,这个字符串时空的,不是NaN,而是0,虽然字符串和数字比较都是false

总结:

1.如果两个值的类型相同,就直接进行比较

2.如果两个值的类型不同,则尝试将他们转换为相同的类型,再进行比较

所有不同类型都要转换为数字才能进行比较

1.字符串转换为数字时,都是为NaN,空的字符串为0
2.NaN不等于任何类型任何值,包括本身

3.undefinded和null比较结果都是true,表示都是"没有值",这是个特殊的,他们两比较的时候都是true ,没有转换为布尔值或是数字什么的

  • undefinded和null or 本身比,为true
  • null 和undefindedor 本身比,为true
undefined == 1
false
undefined == 0
false
null == 1
false
null ==  0
false
undefined == undefined
true
null == null
true
NaN == undefined
false
NaN == null
false
NaN == 1
false
NaN == 0
false
1 == true
true
0 == false
true
0 == '0'
true
'' == '0'
false // 是因为这是两个字符串比较,他们的类型相等,不需要进行转换为数字了,违背总结第一条
0 == ''
true // ''为0
false == 'false'
false  // 'false' 为NaN
false == '0'
true
false == undefined
false
false == null
false
'\t' == 0
true //'\t' 为''
'\n' == 0
true // '\n' 为''
'\r' == 0
true // '\r' 为''

相关文章

  • JavaScript == 相等运算符自动转换的4种简单情形

    情景1:比较数字和字符串 比较数字和字符串时,都要将字符串转换为数据,再两个数字进行比较 比如无法转换为数字,是字...

  • JavaScript严格相等运算符===

    JavaScript 提供两种相等运算符:==和===。 简单说,它们的区别是相等运算符(==)比较两个值是否相等...

  • JS中==和===的区别

    JavaScript 提供两种相等运算符:==和===。 简单说,它们的区别是相等运算符(==)比较两个值是否相等...

  • 为什么我不使用JS的==运算符

    相等运算符 相等运算符(==),比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较...

  • JavaScript中== 和 === 的区别

    JavaScript == 和 === 的区别 "==="严格运算符,"=="相等运算符 建议尽量不要使用相等运算...

  • 相等运算符,条件运算符,运算符的优先级,分组,js操作属性,js

    相等运算符== 如果值的类型不同,则会自动进行类型转换,然后在比较 ===全等用来判断两个值是否全等,和相等类似,...

  • ==比较运算符

    比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。 (1)原始类型的值 原始类型...

  • Object.is()详解

    ES5判断两个值是否相等,有两种方法:相等运算符(==)和严格相等运算符(===)。这两种方法都有缺点,前者会自动...

  • js中== 与 ===区别

    ==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换===:用来检测两...

  • javascript的比较运算符

    JavaScript在设计时,有两种比较运算符: == 比较,它会自动转换数据类型再比较,很多时候,会得到很诡异的...

网友评论

      本文标题:JavaScript == 相等运算符自动转换的4种简单情形

      本文链接:https://www.haomeiwen.com/subject/hpkylrtx.html