基于NodeJS 6.9.5測(cè)試瞎惫。
toString()
- 數(shù)組類(Array Class)的toString()將每個(gè)數(shù)組元素轉(zhuǎn)換為一個(gè)字符串,并在元素之間添加逗號(hào)后合并成結(jié)果字符串撤摸。
- 函數(shù)類(Function Class)的toString()返回這個(gè)函數(shù)的實(shí)際定義的表示方式。實(shí)際上,這里實(shí)現(xiàn)的方式通常是將用戶定義的函數(shù)轉(zhuǎn)換成JavaScript源代碼字符串。
- 日期類(Date Class)的toString()方法返回了一個(gè)可讀的(可被JavaScript解析的)日期和時(shí)間字符串裸扶。
- RegExp類(RegExp class)定義的toString()方法將RegExp對(duì)象轉(zhuǎn)換為表示正則表達(dá)式直接量的字符串框都。
實(shí)例
null
> null.toString()
TypeError: Cannot read property 'toString' of null
undefined
> undefined.toString()
TypeError: Cannot read property 'toString' of undefined
數(shù)字
(1).toString() //不加括號(hào)報(bào)語(yǔ)法錯(cuò)誤
'1'
字符串
> "hello".toString()
'hello'
布爾值
> true.toString()
'true'
> false.toString()
'false'
對(duì)象
> ({x:1,y:2}).toString()
'[object Object]'
數(shù)組
> [1,2,3].toString()
'1,2,3'
> [{x:1,y:2},2,3].toString()
'[object Object],2,3'
函數(shù)
> (function(a,b){return a+b}).toString()
'function (a,b){return a+b}'
日期
> new Date()
2017-02-22T07:14:57.916Z
> (new Date()).toString()
'Wed Feb 22 2017 15:15:09 GMT+0800 (CST)'
正則表達(dá)式
> (/^(.)*$/).toString()
'/^(.)*$/'
valueOf()
如果存在任意原始值搬素,它將默認(rèn)將對(duì)象轉(zhuǎn)換為表示它的原始值呵晨。對(duì)象是復(fù)合值,而且大多數(shù)對(duì)象無(wú)法真正表示一個(gè)原始值熬尺,因此默認(rèn)的valueOf()方法簡(jiǎn)單地返回對(duì)象本身摸屠,而不是返回一個(gè)原始值。數(shù)組粱哼、函數(shù)和正則表達(dá)式簡(jiǎn)單地繼承了這個(gè)默認(rèn)的方法季二,調(diào)用這些類型的實(shí)例的valueOf()方法只是簡(jiǎn)單返回對(duì)象本身。日期類定義的valueOf()方法會(huì)返回它的一個(gè)內(nèi)部表示:1970年1月1日以來(lái)的毫秒數(shù)揭措。
實(shí)例
null
> null.valueOf()
TypeError: Cannot read property 'valueOf' of null
undefined
> undefined.valueOf()
TypeError: Cannot read property 'valueOf' of undefined
數(shù)字
> (1).valueOf() //不加括號(hào)報(bào)語(yǔ)法錯(cuò)誤
1
> typeof (1).valueOf()
'number'
字符串
> "hello".valueOf()
'hello'
> typeof "hello".valueOf()
'string'
布爾值
> true.valueOf()
true
> typeof true.valueOf()
'boolean'
> false.valueOf()
false
> typeof false.valueOf()
'boolean'
對(duì)象
> ({x:1,y:2}).valueOf()
{ x: 1, y: 2 }
> typeof ({x:1,y:2}).valueOf()
'object'
數(shù)組
> [1,2,3].valueOf()
[ 1, 2, 3 ]
> typeof [1,2,3].valueOf()
'object'
> [{x:1,y:2},2,3].valueOf()
[ { x: 1, y: 2 }, 2, 3 ]
> typeof [{x:1,y:2},2,3].valueOf()
'object'
函數(shù)
> (function(a,b){return a+b}).valueOf()
[Function] //函數(shù)對(duì)象
> typeof (function(a,b){return a+b}).valueOf()
'function'
日期
> new Date()
2017-02-22T07:25:55.581Z
> (new Date()).valueOf()
1487748368905
> typeof (new Date()).valueOf()
'number'
正則表達(dá)式
> (/^(.)*$/).valueOf()
/^(.)*$/
> typeof (/^(.)*$/).valueOf()
'object'