js 0=='' 为true 的问题记录

妖狐艹你老母 2021-09-23 14:16 363阅读 0赞

在某次开发过程中遇到了这么一个问题

  1. ...
  2. if(params[i].value !='' && params[i].value != null){
  3. ...
  4. }else{
  5. ...
  6. }
  7. ...
  8. //咋一看好像没啥问题,鬼知道当params[i].value 为 0 时,竟然跑到了else语句中,debugger一看,才发现 0!='' 竟然为false。
  9. 先说结果,把 params[i].value !='' 改为 params[i].value !=='' 即可。

所以,在js中 0==’’ 为啥为true 呢?
因为,在js中是有默认的隐试转换的。

  • 数字 0 会被转成 false
  • 空字符串 ‘’ 也会被转成 false

所以使用 === , 它不会自动转换。

发表评论

表情:
评论列表 (有 0 条评论,363人围观)

还没有评论,来说两句吧...

相关阅读