简介
toString()函数用于将当前对象以字符串的形式返回。
该方法属于Object对象,由于所有的对象都是Object对象的实例,所以几乎所有的实例对象都可以使用toString方法。
toString()函数的返回值为String类型。返回当前对象的字符串形式,但是每个类型的返回值不一样,这是因为javascript的很多内置对象都重写了该方法,以切合和实现自身的功能需要,这就是今天要写这篇博客的目的。
都知道javascript的基本类型有五种,分别是Number、String、Undefined、null和Boolean;
内置对象有Array、Boolean、Object、Function(不要以为这不是内置对象)、Number、String等,接下来,咱们就讨论这几个内置对象的toString方法。
Array
Array方法的toString方法,是将 Array 的每个元素转换为字符串,并将它们依次连接起来,两个元素之间用英文逗号作为分隔符进行拼接。
var a1 = ["tom",23];
a1.toString();
输出:"tom,23"
var a2 = [];
a2.toString();
那么有一个问题是:[] + 1 = ?
Boolean
如果布尔值是true,则返回”true”。否则返回”false”。
var b1 = new Boolean(false);
b1.toString();
输出"false"
Object
返回”[object ObjectName]”,其中 ObjectName 是对象类型的名称。
var o1 = {name: 'jackwen',age: 23}
o1.toString();
输出:"[object Object]"
那么有一个问题:
o1 + 1 = ?
{} + 1 = ?
Function
返回如下格式的字符串,其中 functionname 是一个函数的名称,此函数的 toString 方法被调用: “function functionname() { [native code] }”
function func() {
console.log("I am a function");
}
func.toString();
输出:"function func() {
console.log("I am a function");
}"
Number
返回数值的字符串表示。还可返回以指定进制表示的字符串
var n1 = Number(10);
n1.toString();//默认10进制
n1.toString(2);//2进制
n1.toString(8);//8进制
输出:
"10"
"1010"
"12"
String
返回 String 对象的值。
var s = "I am a string";
s.toString();
输出:"I am a string"