JavaScript类型转换规则

值           =>  字符串     |   数字 |    布尔值 |   对象
undefined       "undefined"     NaN     false       throws TypeError
null            "null"          0       false       throws TypeError
--------------------------------------------------------------------
true            "true"          1                   new Boolean(true)
false           "false"         0                   new Boolean(false)
--------------------------------------------------------------------
""(空字符串,)                    0       false      new String("")
"1.2"(非空,数字)                 1.2     true       new String("1.2")
"one"(非空,非数字)               NaN      true       new String("one")
--------------------------------------------------------------------
0               "0"                      false      new Number(0)
-0              "0"                      false      new Number(-0)
NaN             "NaN"                    false      new Number(NaN)
Infinity        "Infinity"               true       new Number(Infinity)
-Infinity       "-Infinity"              true       new Number(-Infinity)
1(数字,非零)        "1"                   true      new Number(1)
--------------------------------------------------------------------
{}(任意对象)                              true
[](任意数组)        ""            0       true
[9](一个数字元素)   "9"            9       true
['a'](其他数组)  使用join()       NaN      true
function(){}                    NaN      true

几个类型转换后相等的情况

null == undefined
"0" == 0
0 == false
"0" ==false

“==”运算符从不试图将其操作数转换为布尔类型

关于对象转化成字符串和数字
1.toString(): 返回一个反映该对象的字符串
许多类定义了特定版本的toString方法,例如:

·数组类将每一个数组元素转化为字符串

;[1, 2, 3].toString()
//"1, 2, 3"

·函数类返回这个函数的实现定义的表示方式

;(function(x) {
    f(x);
}).toString();
//"(function(x) {\n f(x); \n}).toString()"

·日期类返回一个可读的日期时间字符串

new Date(2017, 11, 16).toString()
//"Sat Dec 16 2017 00:00:00 GMT+0800 (CST)"

·正则表达式(RegExp)类返回正则表达式的直接量的字符串

;/\d+/g.toString()
///\\d+/g

2.valueOf():返回原始值或对象本身
数组、正则、函数返回本身,日期返回内部表示(一般是时间戳)

对象转换成字符串会优先调用toString
转换成数字会优先调用valueOf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值