跳到主要内容

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() 方法对 numberbigInt 类型接受一个可选参数,指定用于表示数字值的字符串的基数(数字基底)。

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() 方法与内置对象如 numberDate 一起使用。

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]"。然而,对于某些内置对象如 StringNumberBooleanArrayDate,它返回原始值。

推荐阅读: