JavaScript中的类型转换

一、基本数据类型的包装对象

 

三个关健的基本数据类型都有包装类型:数字、字符串和布尔值对应的包装类型分别是 Number 、String、Boolean。

 

JavaScript可以很灵活的在基本类型和他们的包装类型中进行转换。例如当在对象环境中使用string时,JavaScript会自动生成一个瞬间String对象,以支持对String对象的属性和方法进行访问:

 

var s = "These are the times that try people's souls";
var last_word = s.substring(s.lastIndexOf(" ")+1, s.lenght);

 

对于普通字符串,typeof返回的值为"string",而对象的typeof返回的值为"object"。

 

要注意的是这种转换中JavaScript内部自动完成的,并且转换后的对象是瞬间存在的,在完成操作后就消失了,而转换前的对象不会因此受影响。

 

如果想保留包装对象,则需要显式的创建一个新的对象:

var s = "hello world";
var s_wrapper = new String("hello world");

 

同里,当一个包装对象用在一个普通的应用场景,则会自动的转成非包装对象计算:

 

var msg = s_wrapper + "!";

 

二、对象到基本类型的转换

 

  • 任意非空对象在布尔环境里,都转成 true
  • 在数字环境里,对象会先调用valueOf()方法,如果不成功,再试图调用toString()方法
  • 对数组,它的toString()方法会把数据变成一个字符串,然后返回这个字符连接的结果:
    • 空数组转换成0
    • 只有一个元素,且元素是数字n,则结果为n
    • 包含多个元素,或其中某个元素的值不为数字,转成NaN

大多数转换依赖上下文环境,例如+运算符和比较运行符(<,<=,>和>=)即对数字有效也对字符串有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值