Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建本地存储分数_Javascript_Html - Fatal编程技术网

Javascript 创建本地存储分数

Javascript 创建本地存储分数,javascript,html,Javascript,Html,我正在尝试将玩家分数存储在本地存储中,代码如下: <script> window.onload = checkScore(); function checkScore() { score = localStorage.getItem("score"); if (score == null || score == "null") { score = a; localStorage.setItem("score", score);

我正在尝试将玩家分数存储在本地存储中,代码如下:

<script>
window.onload = checkScore();

function checkScore() {
    score = localStorage.getItem("score");
    if (score == null || score == "null") {
        score = a;
        localStorage.setItem("score", score);
    } else {
        a += score;
    }
}
</script>

window.onload=checkScore();
函数checkScore(){
score=localStorage.getItem(“score”);
如果(分数==零| |分数==零){
分数=a;
setItem(“分数”,分数);
}否则{
a+=分数;
}
}

a
是我游戏中积分的变量,顺便说一句。

这里有几个问题:

  • 由于您从本地存储中获取的内容始终是字符串,如果您想将
    score
    视为一个数字,您需要根据您的用例通过
    score=number(score)
    score=+score
    parseInt(score,10)
    进行转换

  • 您正在将
    分数添加到
    a
    ;我想你应该在
    分数中加上
    a

  • 你永远不会存储更新后的
    分数
    ,如果它一开始就在那里,除非你将它添加为新的

  • 窗口
    load
    事件在页面加载过程的后期发生,等待加载所有图像和其他外部资源。这可能太晚了

  • 如果确实要使用
    load
    事件,
    window.onload=checkScore()不起作用。调用
    checkScore
    并将其返回值分配给
    window.onload
    ,就像
    x=foo()
    调用
    foo
    并将其返回值分配给
    x
    一样。您需要
    window.onload=checkScore(无
    ()

  • 您的代码由于未声明
    分数而成为牺牲品(除非您在未显示的地方声明)

  • 最新信息:

    在文档末尾的
    脚本
    标记中:

    function checkScore(){
        var score = +(localStorage.getItem("score") || 0); // Easier way to initialize it
        score += a;
        localStorage.setItem("score", score);
    } 
    checkScore();
    
    我不确定您是否想更新
    a
    (我知道问题中有代码,但是…)。我不知道
    a
    从哪里来,因此无法帮助您确定是否正确使用了它。

    var a=0;
    
    var a = 0;
    function checkScore(){
    var score = (localStorage.getItem("score") || 0); // Easier way to initialize it
    if (score >= 1) {
        alert("hi");
        score += a;
        a += score;
        document.getElementById("2").innerHTML = a;
        localStorage.setItem("score", score);
        }
        if (score <= 0) {
        score += a;
        localStorage.setItem("score", score);
        }
    
    
    } 
    
    函数checkScore(){ var score=(localStorage.getItem(“score”)| | 0);//初始化它的更简单方法 如果(分数>=1){ 警报(“hi”); 分数+=a; a+=分数; document.getElementById(“2”).innerHTML=a; setItem(“分数”,分数); }
    如果(评分)问题是什么?什么不起作用?我不知道为什么它不起作用。它只是说评分不起作用。你能提供更多细节吗?从什么起作用/不起作用开始?我认为你应该显示其余的javascript(相关的/相关的)。我还建议您检查浏览器控制台是否有错误。如果这是完整的javascript源代码,您需要声明变量提示:
    var score=
    var a=0;函数checkScore(){var score=(localStorage.getItem(“score”)| | 0)//如果(score>=1){alert(“hi”),则初始化它更简单;score+=a;a+=score;document.getElementById(“2”).innerHTML=a;localStorage.setItem(“score”,score);}如果(score)仍然不起作用,请提供更多帮助这是我的新代码