Это работает, и, вероятно, не сломается, но я все равно попробую привести вещи в правильный тип при использовании localStorage. getItem
и setItem
являются предпочтительными способами выполнения действий, но меня поразило то, что ваши методы получения и установки значения не будут работать для любого типа, кроме числа, что означает, что вы должны кодировать осторожно, если вы используете много localStorage.
Вы отправляете число в localStorage, где оно преобразуется в строку. Это может привести к большим проблемам при работе с логическими значениями, например:
var won = false;
localStorage.isWinner = won;
if (localStorage.isWinner) { // always true
alert("You won!");
}
Массивы и объекты тоже становятся ужасными:
localStorage.test = {foo: "bar", dog: "cat"};
// returns "[object Object]"
Другими словами, то, что у вас есть, работает, но это хорошая привычка делать все правильно и последовательно с самого начала, так как это упростит отладку позже. Правильный путь - который работает со строками, числами, массивами, объектами - это:
localStorage.setItem("key", JSON.stringify(value));
JSON.parse(localStorage.getItem("key"));
// or as a de facto alternative
localStorage.key = JSON.stringify(value);
JSON.parse(localStorage.key);