JavaScript 中,if 判断未生效的一些特殊情况
先说结论:
1.首先要注意0。 if(0)在js中,if的代码块是不会执行的。
2. java后台传来存在null的字段,假设 let test = null ; tyepeof test
,输出的是 object,而不是undefined。 所以判断的时候 ,不要用 if (typeof test != 'undefined' )
,要写成 if (test != undefined )
1. 第一个错误
今天写了一段代码,有四个输入框,分别是上限值,上限范围(< 或 <=),下限值,下限范围( > 或 >=)。范围使用1、2代替。
他们的关系是:有上限值必有上限范围,有下限值必有下限范围,反之亦然。必须有上限值或下限值,使用js判断。
输入一种情况:上限值20,上限范围<;下限值0,下限值范围未输入,未提示 “有下限值时必须填写下限范围”,并保存成功。
首先输出testDown,testDownRange,发现testDown输出0,testDownRange输出null(后台-java传送的数据),以为js没有判断null,故编写以下代码:
发现testDownRange 输出为 undefined,有点想不通,又编写以下代码:
发现没有输出testDown!!!!
突然想起来,testDown是0,js中,如果直接使用变量进行判断,即使该变量不是undefined,是0,也会判为false。
以后做这种判断时切记!!!!!
2. 第二个错误
代码改成下面的了:
一条数据,有上限值和上限范围,没有下限值和下限范围。点击编辑,保存,发现提示: “有下限值时必须填写下限值范围”。
后来测试发现, java后台传来的数据,testDown 和 testDownRange 的值都是null。
假设 a = null, ! a 输出 true, 但是 typeof a 输出 'object'。 所以判断出问题了。要切记。
版权声明: 本文为 InfoQ 作者【Geek_de9857】的原创文章。
原文链接:【http://xie.infoq.cn/article/a218fec0ab709e33f61063d34】。文章转载请联系作者。
评论