代码改变世界

【javascript基础】toString valueOf toLocaleString的具体区别

2012-11-19 14:40  sniper007  阅读(534)  评论(0)    收藏  举报

 一、定义:

《javascript高级程序设计》第二版是这么写的:

 toString:返回对象的字符串表示,

valueOf : 返回对象的字符串、数值或布尔值的表示,通常与toString方法的返回值相同

 PS:《javascript权威指南》写得更含糊,两本书根本没涉及toLocaleString是什么含义。

 ecmascript262 第五版 http://es5.github.com/  是如下定义的:


 

翻译:

当toString被调用的时候,将进行如下步骤:

1.如果当前值没有定义的话,返回字符串"[object Undefined]"

2.如果当前值是null的话,返回“[object Null]”

3. 将当前this作为参数调用ToObject方法,将0作为这个返回值(PS:麻痹,这翻译好别扭啊)

ToObject的方法描述如下:

4.把class值为0的内部属性[[class]]的值,

5.返回结果:"[object" + class +"]" .

 

 

 翻译:

1.将当前this作为参数调用ToObject方法,将0作为这个返回值(PS:麻痹,这翻译好别扭啊)

2.调用toString方法

3.如果toString是不可调用的,则抛出类型错误异常

4.返回toString的结果

 这个就不翻译了,水平有限

 

参考:

http://es5.github.com/