整数被错误地解析为字符串

时间:2016-01-19 09:28:52

标签: javascript parsing integer chess

我正在为实践做一个国际象棋申请,有些东西让我失望。我的方块编号为1-64,第一行保持1到8,下一行保持9到16,依此类推。每当玩家试图移动一块时,我的程序会根据规则检查目的地广场是否合法。

对于我的国王,我有这样一句话:

else if (startID >= 58 && startID <= 63){ // bottom row
                if (endID == startID - 7 || endID == startID - 8 || endID == startID - 9 || endID == startID - 1 || endID == startID + 1) return true;
            }

基本上,如果国王位于最后一排(而不是角落方格),请检查目的地方格是否是相邻的方格。但是,除了检查目标方块是否在右侧的部分之外,它们都有效:

endID == startID + 1

我在程序的其他部分很难使用比较语句,直到我在有问题的变量前添加'parseInt()'。有没有办法确保变量始终是整数?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下

var myStringNum = "1";
if (myStringNum === parseInt(myStringNum, 10) && myStringNum !== NaN){
    console.log('ok'); // does not print anything
}

var myNormalNum = 1;
if (myNormalNum === parseInt(myNormalNum, 10) && myNormalNum !== NaN){
    console.log('ok'); // prints ok
}

诀窍是使用&#39; ===&#39;操作

这是jsfiddle example