toString()
返回對象值的字符串。
一般對象默認的toString方法返回值信息量很少蛤育,所以很多類都自定義toString方法。
var p = {name:'Mike',age:22}
console.log(p.toString()) //[Object Object]
toLocaleString()
返回對象的本地化字符串啄清。
Date Number對toLocaleString()方法做了定制藏古,可以用它對數(shù)字、日期和時間做本地化轉換烟阐。Object默認的toLocaleString只是簡單的返回toString的值搬俊。
Array類的toLocaleString()會把每個數(shù)組元素調用toLocaleString()轉換為字符串紊扬。
toJSON()
Object.prototype實際上沒有定義toJSON()方法,但通過JSON.Stringify()會優(yōu)先調用toJSON方法唉擂,如果沒有再調用系統(tǒng)默認餐屎。
var p = {name:'Mike',age:22}
p.toJSON() // 報錯 Uncaught TypeError: p.toJson is not a function
JSON.stringify(p) //"{"name":"Mike","age":22}"
p.toJSON = function (){ return '{"姓名":"Mike","年齡":"22歲"}'}
JSON.stringify(p) // "{"姓名":"Mike","年齡":"22歲"}"
valueOf()
轉換為原始值,和toString()類似玩祟,一般javascript會在需要將對象轉換為原始值尤其是數(shù)字的時候腹缩,才調用它。
有些內置對象比如Date自定義了Valueof()方法空扎。