Javascript 如何在我的变量中使用本地存储值?

Javascript 如何在我的变量中使用本地存储值?,javascript,html,local-storage,Javascript,Html,Local Storage,我有以下变量: var board = { mainBoard: null, level: 'easy', // <- this one needs te be set using local storage cells: {}, }, //etc 但是我不能让它工作,所以本地存储的级别被用在问题顶部的变量中。正确的方法是什么 更多信息: 我将级别项设置为如下(此项有效): 我通过以下方式获得: localStorage.getItem('gameleve

我有以下变量:

var board = {
    mainBoard: null,
    level: 'easy', // <- this one needs te be set using local storage
    cells: {},
    },
//etc
但是我不能让它工作,所以本地存储的级别被用在问题顶部的变量中。正确的方法是什么

更多信息: 我将级别项设置为如下(此项有效):

我通过以下方式获得:

localStorage.getItem('gamelevel');
所以问题就来了,;如何使用本地存储中的级别(如果有)


亲切问候

将访问器和修改器分解到函数中,即:

function SetLevel(level) {
    localStorage.setItem('gamelevel', board.level);
}

function GetLevel() {
    if (localStorage.length != 0) {
        level = localStorage.getItem('gamelevel');
    } else {
        level = 'easy';
    }
}

如果您只在加载时访问一次localStorage(这是您应该做的——重复查询是一个相对昂贵的功能),同时您正在建立board变量,那么您可以在object literal中完成这一切:

var board = {
    mainBoard: null,
    level: localStorage.getItem( 'gamelevel' ) || 'easy',
    cells: {},
},
localStorage.getItem
如果查询任何尚未设置的项目,则返回
null
——因此,如果已设置,
board.level
将等于检索到的任何值,如果未设置,
null
返回将移到设置后的值


使用
localStorage.length
还会阻止您存储除
gamelevel
以外的任何其他信息,并使默认设置正常工作。

No;使用GetLevel()替换对level变量的引用,感谢您提供的帮助和有用的额外信息。这似乎奏效了,简单而优雅!
function SetLevel(level) {
    localStorage.setItem('gamelevel', board.level);
}

function GetLevel() {
    if (localStorage.length != 0) {
        level = localStorage.getItem('gamelevel');
    } else {
        level = 'easy';
    }
}
var board = {
    mainBoard: null,
    level: localStorage.getItem( 'gamelevel' ) || 'easy',
    cells: {},
},