JS метод Number.valueOf()
Загальний опис
Метод Number.prototype.valueOf()
служить для отримання примітивного значення числового об'єкта. Основна суть цього методу полягає в поверненні власне числового значення, з яким працюють в більшості арифметичних операцій, замість об'єкта-обгортки. Цей метод корисний, коли необхідно чітко визначити числове представлення значення, особливо при роботі з об'єктними та примітивними числовими типами.
В більшості випадків JavaScript автоматично викликає метод valueOf()
при виконанні операцій, які потребують примітивного числового значення. Наприклад, якщо ми маємо об'єкт:
let numObj = new Number(10);
і ми хочемо отримати його примітивне значення, можемо використовувати valueOf()
:
let numValue = numObj.valueOf(); // 10
Втім, зазвичай цей метод використовується неявно. Тобто при виконанні арифметичних операцій, JavaScript автоматично перетворює об'єктне число в його примітивний еквівалент без явного виклику valueOf()
.
Однак важливо знати про існування такого методу, особливо при роботі з іншими об'єктами та типами, де може виникнути потреба у явному перетворенні. Наприклад, при порівнянні об'єкта з примітивом:
if (numObj == numObj.valueOf()) {
console.log("Вони однакові!");
}
Нотатка: | Незважаючи на те, що в багатьох випадках об'єкт |
Порада: | Якщо ви спілкуєтеся з іншими бібліотеками або API, які можуть повертати числа як об'єкти,
|
Порада: | Якщо ви перевіряєте значення об'єкту |
Синтаксис
valueOf()
Параметри
Return
number
Повертає число, що представляє примітивне значення вказаного об'єкта
Number
. Це означає, що якщо метод застосовано до об'єкта-обгортки для числа, він поверне його базове числове представлення, дозволяючи працювати з ним, як із звичайним примітивним числом.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі ми використовуємо метод valueOf()
для отримання примітивного значення числового об'єкта. Взагалі кажучи, JavaScript автоматично конвертує об'єкти в примітиви, коли це потрібно, але іноді може знадобитися виконати це приведення вручну.
let numObject = new Number(42); // створення числового об'єкта
// Отримання примітивного значення за допомогою valueOf
let primitiveNum = numObject.valueOf();
console.log(primitiveNum); // 42
console.log(typeof primitiveNum); // "number"
У цьому прикладі ми розглядаємо, як valueOf()
може бути використаний в контексті, де автоматичне приведення типів не відбувається так, як ми очікуємо. Це дозволить нам порівнювати числові об'єкти з примітивними числами.
let numObject1 = new Number(7);
let numObject2 = new Number(7);
// Пряме порівняння двох об'єктів завжди повертає false
console.log(numObject1 === numObject2); // false
// Використання valueOf для отримання примітивних значень і їх порівняння
console.log(numObject1.valueOf() === numObject2.valueOf()); // true