Javascript 自动数据类型转换机制

Javascript 自动数据类型转换机制  


2010-10-16 23:15:55|  分类: 前端开发 |  标签:数据类型转换机制  |字号 订阅

在javascript 里面,当一种类型的值用于需要某种其他类型的值的环境中,那么javascript将自动尝试把值转换为所需类型,而这就是javascript的自动类型转换机制。

下标简单的描述了所有数据类型转换的过程:这里所要转换成的类型是 字符串,数字,布尔,对象:见下表。。。。。。

-------------------------------------------------------------------------------------------------------

在这里主要说说对象这种类型到基本数据类型的转化:

1.转换成布尔值

无论在什么情况下,一个非空对象在布尔环境中的时候,它都是被转换为true。这对于任何对象,数字倘或函数都是适用的。

2.转换成数字

在对象转换为数字时,其有几个步骤要做的。首先调用通过调用对象的valueOf方法来转换为数字的对象。由于大多对象默认的valueOf()方法什么都没有做,所以调用了这个方法后,其返回的都是对象本身,所以接下来的一步就是调用toString()方法,在返回对象的字符串后,就尝试把结果转换为一个数字。

这对数组产生了一个有趣的结果。数组的toString()方法吧数组元素转换为字符串,然后把各个字符连接起来,形成结果。如果没有元素,那么就会转换为0。如果只有一个元素,而且是一个数字,那么转换结果就是这个数字。如果包含多个元素,如果其中一个元素不是数字,都会返还NaN.

和数据类型紧密相关的是运算符产生的结果:

对于一个对象和一个运算符使用的情况,它应该自动转换为数字还是字符串,这仍然不是很明确。但是我们遵循转换的步骤的话,就能够推敲的出其结果了。

 

值所使用的环境

字符串

数字

布尔

对象

未定义值

‘undefined’

NaN

False

Error

null

‘null’

0

False

Error

非空字符串

不变

字符串的数字

值或NaN

True

String对象

空字符串

不变

0

False

String对象

0

‘0’

不变

False

Number 对象

NaN

‘NaN’

不变

False

Number 对象

无穷

‘infinity’

不变

True

Number对象

负无穷

‘-infinity’

不变

True

Number 对象

True

‘true’

1

不变

Boolean对象

False

‘false’

0

不变

Boolean对象

对象

to String()

valueOf() , 

toString(),

或者NaN

True

不变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值