具有全局变量的局部条件

时间:2018-01-24 08:38:58

标签: javascript jquery local-storage

我在做智力竞赛节目。如果用户知道问题,他的钱和他的分数将增加。 起初,我给了他们钱和一个分数。你懂。我把分数和钱留在当地的仓库。但是当游戏重新开放时,金钱和分数将成为我的第一个定义值。我该如何预防?

var cnt=1000;
var score = 0; 

cnt和得分是全局变量。 我使用本地存储。

 localStorage.setItem("score ", score );
 localStorage.setItem("cnt", cnt);

当你给出正确的答案时,

if (deger == crntUserr) {
    DevExpress.ui.dialog.alert('Correct');
    cnt = cnt + 100;
    score = score + 10;
}

我不希望它有一个初始值

2 个答案:

答案 0 :(得分:0)

您应该在立即阅读localStorage时启动应用程序。

var cnt = Number(localStorage.getItem('cnt')) || 1000;
var score = Number(localStorage.getItem('score')) || 0; 

停止应用程序或onChange

if (deger == crntUserr) {
    DevExpress.ui.dialog.alert('Correct');
    cnt = cnt + 100;
    score = score + 10;

    // store the new value
    localStore.setItem('cnt', cnt);
    localStore.setItem('score', score);
}

答案 1 :(得分:0)

您永远不会更新localStorage值,因此在重新启动应用时,它们仍然具有初始值,因此请将您的功能更改为:

if (deger == crntUserr) {
    DevExpress.ui.dialog.alert('Correct');

    var cntStorage= JSON.parse(localStorage.getItem('cnt'));
    var scoreStorage= JSON.parse(localStorage.getItem('score'));

    cnt = cntStorage + 100;
    score = scoreStorage + 10;

    localStorage.setItem('cnt', JSON.stringify(cnt));
    localStorage.setItem('score', JSON.stringify(score));
}