JS метод Storage.setItem()


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

setItem — це метод об'єкта Storage, який дозволяє зберігати дані в браузерному сховищі за допомогою пари ключ-значення. Це один з основних методів для роботи з localStorage та sessionStorage в JavaScript. Він дозволяє зберігати рядкові значення (як текст або числа), які зберігаються в браузері між сесіями (для localStorage) або до закриття вкладки (для sessionStorage).

Метод приймає два параметри:

  • key — це рядок, який вказує на унікальний ідентифікатор для збереженого елемента.
  • value — це значення, яке буде збережено. Воно повинно бути рядком, тому будь-який інший тип даних (масиви, об'єкти тощо) потрібно конвертувати в рядок перед збереженням за допомогою JSON.stringify().

Простий приклад:

localStorage.setItem("username", "Іван");

У цьому прикладі ми зберігаємо ім'я користувача "Іван" за ключем "username" в localStorage. Після виконання цієї операції, значення "Іван" буде збережено, і воно залишатиметься в сховищі, поки користувач не очистить його або не видалить вручну.

автор: Bond

Порада

Пам'ятайте, що localStorage має обмеження за обсягом даних (зазвичай до 5 МБ). Якщо ви збираєте великі об'єми даних, переконайтеся, що не перевищите це обмеження, інакше буде викликана помилка.

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

Не забувайте, що значення, яке ви зберігаєте в localStorage чи sessionStorage, доступне лише на стороні клієнта. Це означає, що вони можуть бути прочитані або змінені користувачем через інструменти розробника в браузері, тому для зберігання чутливих даних краще використовувати інші методи.

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

При використанні setItem для зберігання складних даних, завжди перетворюйте їх на рядки за допомогою JSON.stringify(). Це дозволить зберігати масиви, об'єкти та інші типи даних без втрати інформації. Наприклад, зберігання списку продуктів виглядатиме так:

let products = [{ id: 1, name: "Яблуко" }, { id: 2, name: "Банан" }];
localStorage.setItem("products", JSON.stringify(products));
автор: Bond

Синтаксис

storage.setItem(key, value);

Повернення

undefined

Метод setItem з об'єкта Storage не повертає жодного значення. Він виконує дію збереження даних у локальному сховищі або сесії, але не надає ніякої відповіді. Це метод, який працює збереженням пари "ключ-значення", але після його виклику не відбувається повернення значення (не має return значення). Тобто він повертає undefined.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
4 3.5 4 10.5 12 8
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 6 3.2
Підтримка: серверні переглядачі
Переглядач Deno
1.10

Приклади

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

Цей приклад використовує sessionStorage для тимчасового зберігання даних форми під час заповнення. Це особливо корисно для запобігання втраті введених даних, якщо користувач випадково оновить сторінку або закриє вкладку.

HTML

<input type="text" id="name" value="текст для прикладу" placeholder="Введи щось">
<input type="email" id="email" value="[email protected]" placeholder="Введи щось">
<button id="saveBtn">Зберегти</button>

JS

// Зберігання даних форми на час сесії
function saveFormData() {
  const formData = {
    name: document.getElementById("name").value,
    email: document.getElementById("email").value,
  };
  sessionStorage.setItem("formData", JSON.stringify(formData));
}

document.getElementById("saveBtn").addEventListener("click", saveFormData);
автор: Bond

Цей приклад показує, як зберігати налаштування користувача, наприклад, вибір теми і розміру шрифту. Це корисно для відновлення налаштувань користувача після того, як він знову зайде на сайт, без необхідності змінювати ці налаштування вручну.

// Зберігання налаштувань користувача для теми
function saveUserSettings(theme, fontSize) {
  const settings = { theme, fontSize };
  localStorage.setItem("userSettings", JSON.stringify(settings));
}

saveUserSettings("dark", "16px");
автор: Bond

Цей приклад дозволяє користувачеві вибирати між світлою та темною темами для веб-сторінки. Налаштування зберігаються за допомогою методу localStorage.setItem, що дозволяє зберігати вибір користувача в локальному сховищі браузера. Коли сторінка перезавантажується або відкрита знову, тема зберігається і застосовується автоматично.

У цьому прикладі, користувач може перемикати чекбокс для вибору теми, після чого натискання кнопки "Застосувати налаштування" зберігає цей вибір у локальному сховищі. Сторінка автоматично оновлюється відповідно до вибору користувача і показує повідомлення про успішне застосування налаштувань.

автор: Bond

Коментарі

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

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

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

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

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

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

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

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

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

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

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

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