JavaScript原生提供一个Object对象,所有其他对象都继承自这个对象,Object对象有valueOf和valueOf方法,所以所有JS数据类型都继承了这两种方法。
valueOf:返回最适合该对象类型的原始值,各个类型的原始值如下:
对象 | 返回值 |
---|---|
Array | 返回数组对象本身。 |
Boolean | 布尔值。 |
Date | 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。 |
Function | 函数本身。 |
Number | 数字值。 |
Object | 对象本身。这是默认情况。 |
String | 字符串值。 |
Math、 Error、 undefined、Null 对象没有 valueOf 方法。 |
toString:将该对象的原始值以字符串形式输出
对象 | 返回值 |
---|---|
Array | 以逗号分隔每个数组元素形成的字符串 |
Boolean | “true”或"false" |
Date | Thu Jul 06 2017 00:00:00 GMT+0800 |
Function | 函数的文本定义 |
Number | “123” |
Object | [object Object] |
String | 字符串值本身 |
Math、 Error、 undefined、Null 对象没有 valueOf 方法。 |
在数值运算里,会优先调用valueOf(),如a + b;
在字符串运算里,会优先调用toString(),如alert(c)。
在字符串运算里,会优先调用toString(),如alert(c)。