JS中的 toString 和 valueOf 方法,tostringvalueof
分享于 点击 7358 次 点评:205
JS中的 toString 和 valueOf 方法,tostringvalueof
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方法
相关文章
- 暂无相关文章
用户点评