toString & valueOf

valueOf 和 toString

都是Object原型上的方法,很多重要类型的原型都重写了他们

valueOf :

  1. 返回包装类型对象的原始值

toString:

  1. 对于Number、Boolean、String、Array、Date、RegExp、Function 重写了,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var num = new Number('123');
num.toString(); // '123'
var str = new String('12df');
str.toString(); // '12df'
var bool = new Boolean('fd');
bool.toString(); // 'true'
let arr = new Array([123,23,45,'asdsad'])
arr.toString(); // '123,23,45,asdsad'
var d = new Date();
d.toString(); // "Sun Jul 22 2018 12:38:42 GMT+0800 (中国标准时间)"
let fn = function (params) {
console.log(params)
}
fn.toString(); // 'function (params) {\n console.log(params)\n}'
  1. 对于Object、Math都是返回对象的类型[object type]其中type就是对象类型。 例如:[object object] [object math]