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。
答案 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)
使用==
或===
作为比较运算符,那么它应该没问题