js 0=='' 为true 的问题记录
在某次开发过程中遇到了这么一个问题
...
if(params[i].value !='' && params[i].value != null){
...
}else{
...
}
...
//咋一看好像没啥问题,鬼知道当params[i].value 为 0 时,竟然跑到了else语句中,debugger一看,才发现 0!='' 竟然为false。
先说结果,把 params[i].value !='' 改为 params[i].value !=='' 即可。
所以,在js中 0==’’ 为啥为true 呢?
因为,在js中是有默认的隐试转换的。
- 数字 0 会被转成 false
- 空字符串 ‘’ 也会被转成 false
所以使用 === , 它不会自动转换。
还没有评论,来说两句吧...