介绍
- 所有的对象原型都有这个2个方法。
- Object.prototype会返回这2个方法。
toString()
介绍
- toString() 返回对象字符串表示
案例
1 | 3.toString(); // "3" |
valueOf()
介绍
- valueOf() 如果对象存在任意原始值,它就默认将对象转换为表示它的原始值,如果对象是复合值,而且大多数对象无法真正表示为一个原始值,因此默认的valueOf( )方法简单地返回对象本身,而不是返回一个原始值。
案例
1 | 3.valueOf(); // 3 返回原始值 |
调用时机
案例
1
2
3
4
5
6
7
8
9
10
11
12
13
14//案例一
var a = '31';
console.log(+a);// 31
//案例二
var example = {test:'123'};
console.log(+example);// NaN
//案例三
console.log('test'+{}); //"test[object Object]"
//案例四
var example = {test:'1232'};
alert(example);// "[object Object]"结论:
- 案例一二:一元加操作符在操作对象的时候,会先调用对象的valueOf方法来转换,最后再用Number( )方法转换
- 案例三:对象和字符串相加,肯定转换为字符串啊,所以调用了对象的toString方法,变为[object Object]了
- alert是调用toString()方法,和字符串和对象相加一样