В Firefox 45 на OSX, когда я извлекаю элемент из localStorage
из ключа, которого не существует, вызов функции возвращает null
. Я тестировал это на консоли.Почему Javascript передает значение null в строку при присвоении переменной?
Если я вместо этого назначу результат вызова переменной и напечатаю его значение в консоли, я получаю "null"
, то есть строку.
Почему переменное назначение ранее не заданной переменной приводит результат вызова к String?
Б код (в консоли):
localStorage.getItem("non-existing-key"); // returns null
var x = localStorage.getItem("non-existing-key");
x // returns "null"
Edit: обе версии, кажется, правильно вести себя на Chrome 50.0.2661.86 на OSX (оба возвращают null
)
Edit2: моя ошибка. Я использовал другое имя переменной в своих тестах (в частности: var name
). Теперь, если я позволю консоли вернуть значение переменной name
, он возвращает window.name
, что является свойством window
типа String, по умолчанию "null"
. Таким образом, это не назначение, которое вызывает литье, но вместо этого оно имеет свойство String, определенное window
.
firefox 45.0.2 на окнах, не может воспроизводить: localStorage.getItem («несуществующий ключ»); // возвращает null var x = localStorage.getItem ("несуществующий ключ"); x // -> возвращает null не "null" – Giuseppe
Используется OSX, отредактирован. –
Что он возвращает в другом браузере? Я считаю, что вы путаетесь между 'null' и' "null" ' – Rayon