您的位置:首页 > 产品设计 > UI/UE

JS中的 toString 和 valueOf 方法

2015-10-31 16:23 716 查看

1.存在环境

所有的对象都继承了这两个方法,甚至于包装对象Number、String和Boolean。


2.具体细节

对于不同类型的对象,js定义了多个版本的 toString 和 valueOf 方法
toString:
(1)普通对象,返回 "[object Object]";
(2)数组,返回数组元素之间添加逗号合并成的字符串;
(3)函数,返回函数的定义式的字符串;
(4)日期对象,返回一个可读的日期和时间字符串;
(5)正则,返回其字面量表达式构成的字符串;
valueOf:
(1)日期对象,返回自1970年1月1日到现在的毫秒数;
(2)其它均返回对象本身;


3.应用场景——类型转换

对象=>字符串
(1)执行toString,如果返回了一个原始值,则将其转化为字符串
(2)否则执行valueOf方法,如果返回了一个原始值,则将其转化为字符串
(3)否则抛出类型错误
对象=>数字
(1)执行valueOf,如果返回了一个原始值,如果需要,则将其转化为数字
(2)否则执行toString,如果返回了一个原始值,则将其转化为数字并返回
(3)否则抛出类型错误


4.类型转换与关系操作符(>、<等,不包括===和!==)

- 两个都是数值,则比较数值
- 两个都是字符串,则比较字符编码值
- 其中一个是数值,则要把另个转化成数值进行比较
- 如果其中一个是对象,则调用valueOf,若没有返回原始值则调用toString,再进行前面的比较
- 如果有一个是布尔值,则将其转化成数值


注:日期对象只调用toString,不会调用valueOf方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息