在 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 會被自動轉換為字符串類型,因此可以將它與另一個字符串連接起來。