javascript中对象到字符串的转换经过了如下这些步骤:
如果对象具有
toString
方法,则调用这个方法。如果它返回一个原始值,javascript将这个值转换为字符串,并返回这个字符串结果。需要注意的是,原始值到字符串的转换在下表中已经有了详细说明。如果对象没有
toString
方法,或者这个方法并不返回一个原始值,那么javascript会调用valueOf
方法。如果存在这个方法,则javascript调用它。如果返回值是原始值,javascript将这个值转换为字符串,并返回这个字符串结果。否则,javascript无法从
toString
和valueOf
获得一个原始值,因此这时抛出一个类型错误异常。
javascript中对象到数字的转换经过了如下这些步骤:
如果对象具有
valueOf
方法,后者返回一个原始值,则javascript将这个原始值转换为数字(如果需要的话)并返回这个数字。否则,如果对象具有
toString
方法,后者返回一个原始值,则javascript将其转换为数字类型并返回。(见示例)否则,javascript抛出一个类型异常。
示例: ""(空字符串)转换为 0
"1.2" 转换为 1.2
"one"转换为 NaN
"123abc" 转换为 NaN
可见这里调用的是Number()
,并不是parseInt()