Почему при записи в локальную память браузера не получается получить правильные данные?
Я пытался записать в локальную память некоторые данные и все вроде получилось, но когда попытался проверить соотвествуют ли введенные данные соответствующему ключу, получаю не тот результат, что ожидал.
localStorage.setItem("login", JSON.stringify("Tom12!"));
localStorage.setItem("token", JSON.stringify("QhuR56Rw"));
console.log(localStorage.getItem("login") === "Tom12!"); // Ожидаю true, но получаю false
console.log(localStorage.getItem("token") === "QhuR56Rw"); // Ожидаю true, но получаю false
Я ожидал получить true, но получаю false. Почему?
Ответы (2 шт):
Автор решения: humster_spb
→ Ссылка
А зачем Вам JSON.stringify? Он записывает в локальное хранилище значение в виде "Tom12!", то есть вместе с кавычками. Сравнивать тогда надо с конструкцией "\"Tom12!\"":
console.log(JSON.stringify("Tom12!") === "\"Tom12!\"");
Автор решения: Roman Grinyov
→ Ссылка
Вы забыли JSON.parse():
localStorage.setItem("login", JSON.stringify("Tom12!"));
localStorage.setItem("token", JSON.stringify("QhuR56Rw"));
console.log(JSON.parse(localStorage.getItem("login")) === "Tom12!"); // true
console.log(JSON.parse(localStorage.getItem("token")) === "QhuR56Rw"); //true