Ton*_*nas 3 javascript comparison-operators
我在这里错过了什么?这个脚本对我来说很合适.
但出于某种原因,当我发送一个02897(或任何应该是罗德岛)的邮政编码时,它会返回新罕布什尔州.除了Javascript开发人员可能拥有的政治信仰(确定大多数人更愿意住在新汉普尔而不是罗德岛),为什么这个脚本不起作用?
新泽西州和阿拉巴马州的工作正常.为什么罗德岛不能得到一些爱?
function getState(zip) {
var thiszip = zip; // parseInt(zip);
if (thiszip >= 35000 && thiszip <= 36999) {
thisst = 'AL';
thisstate = "Alabama";
}
else if (thiszip >= 03000 && thiszip <= 03899) {
thisst = 'NH';
thisstate = "New Hampshire";
}
else if (thiszip >= 07000 && thiszip <= 08999) {
thisst = 'NJ';
thisstate = "New Jersey";
}
else if (thiszip >= 02800 && thiszip <= 02999) {
thisst = 'RI';
thisstate = "Rhode Island";
}
else {
thisst = 'none';
}
return thisst;
}
Run Code Online (Sandbox Code Playgroud)
03000等于1536小数.
这是因为前导零导致该值被解释为八进制.
因为最后你正在进行数值比较,为什么不在比较中省略前导零?
else if (thiszip >= 3000 && thiszip <= 3899) {
Run Code Online (Sandbox Code Playgroud)
否则,使用parseInt并声明小数:
else if (thiszip >= parseInt(03000, 10) && thiszip <= parseInt(03899, 10)) {
// ^^^ pass radix parameter ^^^ pass radix parameter
Run Code Online (Sandbox Code Playgroud)
你可能想要parseInt传入的值:
var thiszip = parseInt(zip, 10);
Run Code Online (Sandbox Code Playgroud)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |