Array.valueOf() в JavaScript — повертає сам масив


Опис

автор: Bond

Загальний опис

автор: NagarD

Порада

За замовчуванням, valueOf() повертає сам масив, а не його примітивне значення. Якщо ви хочете отримати примітивне значення масиву, ви можете використовувати методи, такі як join(), toString() або reduce(), залежно від потрібного формату.

автор: Bond
Порада

Якщо ви плануєте явно викликати метод valueOf(), врахуйте, що він не змінює вихідний масив. Він просто повертає примітивне значення масиву.

автор: Bond
Нотатка

Метод valueOf() викликається автоматично при спробі конвертувати масив в примітивне значення, наприклад, при використанні оператора рядкового злиття (+).

автор: Bond

Синтаксис

valueOf()

Повернення

array

Метод valueOf() повертає сам себе.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 3 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Використання методу valueOf().

const fruits = ["Banana", "Orange", "Apple", "Mango"];
const myArray = fruits.valueOf();

console.log(myArray); // ["Banana", "Orange", "Apple", "Mango"]
автор: Bond

Цей приклад демонструє використання методу 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
автор: Bond

Чотири випадки в одному прогоні: 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
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід