Почему изменение имени переменной меняет поведение скрипта?
Я только начал учить js и уже чувствую себя как девочка из мема. Имя test в localStarage я не задавал. Почему в первом случае localStorage.getItem("test") это "null" а во втором, судя по всему, null?
var name = localStorage.getItem("test");
console. log(name + ' ' + typeof(name)); // null string
var foo = localStorage.getItem("test");
console. log(foo + ' ' + typeof(foo)); // null object
Ответы (1 шт):
Автор решения: EzioMercer
→ Ссылка
Всё дело в том как работают 2 вещи:
varв глобальной области видимости- Свойство
nameу объектаwindow
И так по порядку:
- Когда мы объявляем какую-то переменную с помощью
varв глобальной области видимости, оно попадает в объектglobalThis, что в браузере являетсяwindow - Когда мы что-то записываем в
window.name, то он автоматически вызывает у этого значенияtoString()
Вот и получается, что мы получаем на выходе name - строка "null"