在 JavaScript 中,valueOf() 方法是一个可以被对象调用的方法,用于返回该对象的原始值。它可以被所有对象类型(包括自定义对象)调用,并返回一个原始值,例如字符串、数字、布尔值等。

对象

下面是一个示例,展示了在 JavaScript 中对象使用 valueOf() 方法:

let myObj = {
    name: "Quintion",
    age: 30,
    toString() {
        return `${this.name} 年龄 ${this.age}`;
    },
    valueOf() {
        return this.age;
    },
};

console.log(myObj.toString()); // Quintion 年龄 30
console.log(myObj.valueOf()); // 30

数字

在 JavaScript 中的数字是 Number 类型的实例,具有 valueOf() 方法,返回一个数字对象的原始值。

例如,如果有一个数字对象 num,可以使用 valueOf() 方法获取它的原始值,如下所示:

const num = new Number(42);
console.log(num.valueOf()); // 42

大多数情况下,JavaScript 引擎会自动将数字对象转换为数字类型,因此通常不需要使用 valueOf() 方法来获取数字对象的值。例如:

const num = new Number(42);
const result = num + 10;
console.log(result); // 52

字符串

字符串是 String 类型的实例,也具有 valueOf() 方法,返回一个字符串对象的原始值。

例如,如果有一个字符串对象 str,可以使用 valueOf() 方法获取它的原始值,如下所示:

const str = new String("hello");
console.log(str.valueOf()); // 'hello'

同样,JavaScript 引擎会自动将字符串对象转换为字符串类型,因此不需要使用 valueOf() 方法来获取字符串对象的值。例如:

const str = new String("hello");
const result = str + " world";
console.log(result); // 'hello world'

上面代码 str 会被自动转换为字符串类型,因此可以将它与另一个字符串连接起来。