在js中对象拥有toString()
和valueOf()
两个方法,用于将对象转换为字符类型或数值类型,便于打印或者计算。
- 如果对象用于运算例如有运算操作符的情况下,会优先使用
valueOf()
,若valueOf()
不存在或者转换所得值无法进行计算则,再调用toString()
进行计算。 - 在其他情况下,对象默认优先使用
toString()
方法进行转换,如果toString()
方法不存在或者无法满足要求,再调用valueOf()
。 toString()
一律返回字符类型,valueOf()
除了Date返回Number类型(存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。)以外,Array、Boolean、Function、Number、Object、String都返回本身的类型。