Array.valueOf() в JavaScript — повертає сам масив
Опис
автор: Bond
Загальний опис
автор: NagarD
- Порада
-
За замовчуванням,
автор: BondvalueOf()повертає сам масив, а не його примітивне значення. Якщо ви хочете отримати примітивне значення масиву, ви можете використовувати методи, такі якjoin(),toString()абоreduce(), залежно від потрібного формату. - Порада
-
Якщо ви плануєте явно викликати метод
автор: BondvalueOf(), врахуйте, що він не змінює вихідний масив. Він просто повертає примітивне значення масиву. - Нотатка
-
Метод
автор: BondvalueOf()викликається автоматично при спробі конвертувати масив в примітивне значення, наприклад, при використанні оператора рядкового злиття (+).
Синтаксис
valueOf()
Повернення
array-
Метод
автор: BondvalueOf()повертає сам себе.
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 3 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Використання методу valueOf().
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const myArray = fruits.valueOf();
console.log(myArray); // ["Banana", "Orange", "Apple", "Mango"]
Цей приклад демонструє використання методу valueOf() для отримання серіалізованого представлення масиву. Показано, як метод працює з масивами, що містять числа та об'єкти.
HTML
<header>
<h2 class="title">Використання методу valueOf() з масивом</h2>
<p class="description">Демонстрація використання методу valueOf() для отримання серіалізованого представлення масиву.</p>
</header>
<main>
<div class="result">
<h3 class="result-title">Масив чисел:</h3>
<pre id="numberArray"></pre>
<h3 class="result-title">Масив об'єктів:</h3>
<pre id="objectArray"></pre>
<h3 class="result-title">Результат valueOf() для масиву чисел:</h3>
<pre id="numberValueOf"></pre>
<h3 class="result-title">Результат valueOf() для масиву об'єктів:</h3>
<pre id="objectValueOf"></pre>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
.result-title {
font-weight: bold;
color: #333;
}
JS
var arrNum = [10, 20, 30, 40, 50];
var arrObj = [{ name: "John", age: 30 }, { name: "Jane", age: 25 }];
// Виводимо масив чисел
document.getElementById('numberArray').innerText = JSON.stringify(arrNum, null, 2);
// Виводимо масив об'єктів
document.getElementById('objectArray').innerText = JSON.stringify(arrObj, null, 2);
// Виводимо результат valueOf() для масиву чисел
document.getElementById('numberValueOf').innerText = JSON.stringify(arrNum.valueOf(), null, 2);
// Виводимо результат valueOf() для масиву об'єктів
document.getElementById('objectValueOf').innerText = JSON.stringify(arrObj.valueOf(), null, 2);
//# sourceURL=pen.js
Чотири випадки в одному прогоні: valueOf() у масиву повертає той самий об’єкт, у Date — число, у власного об’єкта — те, що ви напишете, а масив у арифметиці все одно стає рядком. Увесь вивід іде в панель консолі.
const arr = [1, 2, 3];
// у масиву valueOf повертає той самий об'єкт — і це навіть не його власний метод
console.log('той самий об’єкт:', arr.valueOf() === arr); // true
console.log('метод дістався від Object:', Array.prototype.valueOf === Object.prototype.valueOf); // true
// у Date valueOf справді рахує — віддає число мілісекунд
const d = new Date('2026-01-01T00:00:00Z');
console.log('Date.valueOf():', d.valueOf(), '/ тип:', typeof d.valueOf()); // 1767225600000 / number
console.log('дата мінус нуль:', typeof (d - 0), '| дата плюс рядок:', typeof (d + '')); // number | string
// власний valueOf: об'єкт починає поводитися як число
const money = {
amount: 250,
valueOf() { return this.amount; },
toString() { return this.amount + ' грн'; },
};
console.log('арифметика:', money + 50); // 300
console.log('порівняння:', money > 100); // true
console.log('склейка через плюс бере valueOf:', 'ціна: ' + money); // ціна: 250
console.log('String() бере toString:', String(money)); // 250 грн
// масив так не вміє: valueOf віддає об'єкт, і черга переходить до toString
const sum = [1, 2] + [3];
console.log('масив у арифметиці:', sum, '/ тип:', typeof sum); // 1,23 / string
Коментарі
Коментарів ще немає — будьте першим!