<!-- Определяем объект "Пользовательская информация" -->
var userData = {
login: formElements.login.value,
password: formElements.password.value,
typeOfTVShow: formElements.typeOfTVShow.value,
tvShows: [],
isCinemaddict: formElements.isCinemaddict.value,
comment: formElements.comment.value
};
<!-- В переменную var получаем значение, которе лежит в local storage по указанному ключу, в нашем случаем result-->
var results = localStorage.getItem('results') || "[]";
<!-- JSON - текстовый формат данных, основанный на JavaScript. JSON представляет объекты в виде строки -->
<!-- Переданная строка results в формате JSON становится JavaScript объектом -->
results = JSON.parse(results);
<!--??????????????????-->
results.push(userData);
Метод push
- ничего не делает для объекта, потому по умолчанию у объектов нет такого метода.
Но, в данном случае, results
- это массив. А, как говорится в справке:
push
- добавляет элемент в конец массива.
что делается в этих строках
var results = localStorage.getItem('results') || "[]";
results = JSON.parse(results);
В первой строчке идет попытка получить занчение из localStorage, либо если его нет присвоить значение по умолчанию "[]"
Во второй - получение из строки, полученной на прошлом шаге, JavaScript объекта. И тут наступает небольшой диссонанс с предыдущими строками! Так как в них объект рассматривался как экземпляр класса Object
. В данном же случае речь идет о Javascript значении, которое может быть как экземпляром класса Object
, так и массивом, примитивом(строкой, числом) и т.д.
В данном случае, судя по значению по умолчанию ожидается именно массив. Хотя на самом деле в строке может оказаться что угодно. в том числе и невалидный JSON, и в этом случае функция parse выкинет исключение
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Пользователь загружает на сервер два файлаПервый- текстовый файл, второе-изображение
Допустим есть два Input (Дата добавления и дата удаления) если была заполнена только Дата добавления то стоит картинка виде галочки, а если еще...
Имеется несколько div c class='card'как реализовать в js, чтобы при нажатии на одном из элементов происходило событие какое-либо? Вот ниже моя реализация...