javascript数据类型转换

javascript数据类型转换

在面试中常常会遇见问类型转换的问题,例如[] == false、[] == {}返回的是真仍是假等等。。。javascript

默认是false的五个值

null undefined NaN 0 ''

记住只有这五个值是假的剩下的所有是真的。java

转换规则

  1. 若是是一个值判断是不是真假,除了默认是false的五个值剩下的所有是true。
  2. 若是是两个值比较是否相等,遵循以下规则。git

    val1 == val2 若是两个值可能不是同一数据类型,若是是==比较的话,会默认进行数据转换。github

    2.1 object == object,比较永远不相等。面试

    2.2 object == string 先将对象转换成字符串(调用toString方法),而后再比较。code

    [] 转换成字符串 ""
    {} 转换成字符串 "[object Object]"

    2.3 object == boolean 先将对象转换成字符串(toString),再把字符串转换成数字(Number)、布尔值转换成数字(true 转换成 1 false 换成成 0)而后让两个数字进行比较。对象

    Number("") 会输出 0

    2.4 object == number
    先将对象转换成字符串(toString),再把字符串转换成数字(Number),再进行比较。blog

    2.5 number == boolean 布尔值转换成数字,而后再比较。ip

    2.6 number == string 字符串转换成数字,而后再比较。字符串

    2.7 string == boolean 都转换成数字,,而后再比较。

    2.8 null == undefined 结果是true。

    2.9 null 或者 undefined 比较另外的全部值,结果都是false,不相等。

例如:

[] == false 返回 true 2.3规则。
 [] == []  返回 false 2.1规则。
 2 == true 返回 false 2.5规则。

=== 三个等号还会比较数据类型。

这些规则背下来,就能完美的应付这样的面试题了,加油!

个人博客和GitHub地址

https://github.com/lanpangzhi

http://blog.langpz.com

相关文章
相关标签/搜索