JS数据类型转换规律汇总

2020-02-10  本文已影响0人  空压机百科
基本数据类型

1、数字(number)
2、字符串(string)
3、布尔(boolean)
4、空(null)
5、未定义(undefined)

引用类型

对象(object)
    普通对象
    数组对象(Array)
    正则(RegExp)
    日期对象(Date)
函数(function)

把其他数据类型转换为number
把其它类型值转换为字符串
把其它类型换为布尔类型
特殊情况:数学运算和字符串拼接“+”

当表达式中出现字符串就是字符串拼接,否则就是数学运算

1 + true  // 数学运算结果为2
“1” + true  // 字符串凭借结果为"1true"
[12] + 10  //  虽然没有看见字符串,但是引用类型转换数字首先转换为字符串,所借就是字符串拼接。结果为"1210"
({}) + 10 //  结果为"[object Object]10"
[] + 10  //  结果为“10”
{} + 10  //  结果是10,因为{}代表代码块, +10才是我们的操作,严格写法{}; +10
特殊情况:“==”进行比较的时候,如果左右两边的数据类型不一样,则先转换为相同类型,再进行比较

对象 == 对象:不一定相等,因为对象操作的是引用地址,地址不同则不相等
对象 == 数字:把对象转换为数字
对象 == 布尔:把对象转换为数字,把布尔也转换为数字
对象 == 字符串:把对象转换为数字,把字符串也转换为数字
字符串 == 数字:字符串转换为数字
字符串 == 布尔:都转换为数字
布尔 == 数字:布尔转换为数字
不同情况的比较都是把其它值转换为数字再进行比较

null == undefined:true
null === undefined:false
null && undefined和谁都不相等
NaN == NaN:和谁都不相等包括自己结果为 false

[] == true //都转换为数字 ==> 0 == 1结果为false
[] == false //都转换为数字 ==> 0 == 0结果为true
![] == true //先计算![],把数组转换为布尔取反 ==> false == false结果为false
![] == false //false == false结果为true
上一篇下一篇

猜你喜欢

热点阅读