类型、值和变量 - 类型转换 - 显式类型转换

尽管JavaScript可以自动做许多类型转换,但有时仍需要做显式转换,或者为了使代码变得清晰易读而做显式转换。

做显式类型转换最简单的方法就是使用Boolean()、Number()、String()或Object()函数。当不通过new运算符调用这些函数时,他们会作为类型转换函数并按照下表所描述的规则做类型转换:

转换为字符串转换为数字转换为布尔值转换为对象
undefined“undefined”NaNfalsethrows TypeError
null“null”0falsethrows TypeError
true“true”1new Boolean(true)
false“false”0new Boolean(false)
“”(空字符串)0falsenew String("")
“1.2”(非空,数字)1.2truenew String(“1.2”)
“one”(非空,非数字)NaNtruenew String(“one”)
0“0”falsenew Number(0)
-0“0”falsenew Number(-0)
NaN“NaN”falsenew Number(NaN)
Infinity“Infinity”truenew Number(Infinity)
-Infinity“-Infinity”truenew Number(-Infinity)
1(无穷大,非零)“1”truenew Number(1)
{}任意对象参考《JavaScript权威指南》“对象转换为原始值”章节参考《JavaScript权威指南》“对象转换为原始值”章节true
[](任意数组)“”0true
[9](1个数字元素)“9”9true
[‘a’](其他数组)使用join()方法NaNtrue
function(){}(任意函数)参考《JavaScript权威指南》“对象转换为原始值”章节NaNtrue
Number("3")   // => 3
String(false) // => "false" 或使用false.toString()
Boolean([])   // => true
Object(3)     // => new Number(3)

需要注意的是,除了null和undefined之外的任何值都具有toString()方法,这个方法的执行结果通常和String()方法的返回结果一致。同样需要注意的是,如果试图把null或undefined转换为对象,则会向上面表格所描述的那样抛出一个类型错误(TypeError)。Object()函数在这种情况下不会抛出异常:它仅简单地返回一个新创建的空对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值