如果未定义,如何将本地存储设置为0?

时间:2014-03-17 11:14:46

标签: javascript local-storage

if localStorage["BestScore"] = undefined;
{
localStorage["BestScore"]=0; 
maxScore=0;
}

 var maxScore=localStorage["BestScore"]; 
  var newScore=false
  function drawScore(score) {
    if (newScore == true && score < maxScore) {
      newScore = false;
    }
    if (score > maxScore) {
      newScore = true;
      localStorage["BestScore"] = score;
      if ([5, 10, 15, 20].indexOf(score) !== -1) {
        play(sndMedal);
      } else { 
        play(sndGain);
      }
    }
  

此代码用于设置最大分数然后存储它,但如果未定义,它似乎不会将本地存储设置为0。

4 个答案:

答案 0 :(得分:3)

if localStorage["BestScore"] = undefined;

应该是:

if( typeof localStorage["BestScore"] === 'undefined' )

答案 1 :(得分:2)

if localStorage["BestScore"] = undefined;

应为==

否则你要分配,而不是比较。

答案 2 :(得分:2)

但是,如果您需要针对undefined值检查变量,则无需创建任何特殊方法,因为JavaScript具有typeof运算符,该运算符简单,快速且跨平台:

if (typeof localStorage["BestScore"] === "undefined") {
    localStorage["BestScore"] = 0;
}

返回一个字符串,指示变量或其他未评估操作数的类型。与if (value === undefined) { ... }相比,此方法的主要优点是typeof在变量value不存在的情况下永远不会引发异常。

答案 3 :(得分:0)

使用=====作为比较运算符,那么它应该没问题