JavaScript 对象 toString() 方法
Object.toString()
方法返回给定对象的字符串表示。
示例
// 创建一个值为 10 的数字
let num = 10;
// 在使用 toString() 方法前检查 num 的类型
console.log(typeof num);
// 输出:number
// 在使用 toString() 方法后检查 num 的类型
console.log(typeof num.toString());
// 输出:string
toString() 语法
toString()
方法的语法为:
obj.toString();
这里的 obj 是我们想要转换为字符串的对象。
toString() 参数
toString()
方法不接受任何参数。
注意:toString()
方法对 number
和 bigInt
类型接受一个可选参数,指定用于表示数字值的字符串的基数(数字基底)。
toString() 返回值
toString()
方法返回代表对象的字符串。
示例 1:JavaScript toString() 与内置对象
// 创建一个值为 10 的数字
let num = 10;
// number 对象的 toString() 方法接受
// 可选的基数参数(数字基底)
console.log(num.toString(2));
// 输出:"1010"
// 创建一个新的日期对象
let date = new Date();
console.log(date.toString());
// 输出:Thu Aug 06 2020 12:08:44 GMT+0545 (尼泊尔时间)
在上述示例中,toString()
方法与内置对象如 number
和 Date
一起使用。
toString()
方法带有可选基数 2,将数字转换为二进制数字的字符串表示。
对于 Date
对象,toString()
方法返回日期和时间的字符串表示。
示例 2:toString() 与自定义对象
// 构造函数创建一个新对象
function Dog(name, breed, sex) {
this.name = name;
this.breed = breed;
this.sex = sex;
}
// 创建一个新对象
let dog1 = new Dog("Daniel", "bulldog", "male");
console.log(dog1.toString());
// 输出:[object Object]
// 重写自定义对象中的默认 toString()
Dog.prototype.toString = function dogToString() {
return `${this.name} is a ${this.sex} ${this.breed}.`;
};
console.log(dog1.toString());
// 输出:Daniel is a male bulldog.
在上述示例中,我们使用 Dog()
构造函数创建了一个自定义对象 dog1。
默认情况下,访问 dog1 对象的 toString()
方法时,我们得到 "[object Object]"
输出。
然而,我们可以用自定义实现重写默认的 toString()
方法。
Dog.prototype.toString = function dogToString() {
return `${this.name} is a ${this.sex} ${this.breed}.`;
};
如您所见,我们的自定义 toString()
方法返回与默认的 "[object Object]"
字符串值不同的字符串消息。
注意:当用于对象时,toString()
方法默认返回字符串 "[object Object]"
。然而,对于某些内置对象如 String
、Number
、Boolean
、Array
和 Date
,它返回原始值。
推荐阅读: