praseInt 和 逻辑或连用

这是做项目时遇到json文件转换 的一个小坑

将json 对象中的值 由字符串(数字字符串) 转换为 数值类型,如果是 转换失败 ,就返回 -1
这里的 parseInt 看起来非常简洁,但是存在一个小坑

transformedData[fieldsToCheck[i]] = parseInt(originalValue)  || -1

由于我的数据中会牵扯很多默认配置,而在系统中,默认配置通常用 0来表示,因此在这里转换时 会将 字符串 “0” ,转换为 0

紧接着就是逻辑或处理 || 坑就来了,我的本意是用来放置NaN 的出现,所以才用 || 去赋值一个默认值

但是 0 在JS中默认 会表示为 false ,也就是 所有 字符串 “0” ,都会被转为 我的防空数字 -1这也就导致我了数据丢失

因此 JS 中 parseInt 和 或 判断连写 ,还是需要谨慎一些的,最好还是用 三元运算符 更合适

transformedData[fieldsToCheck[i]] = parseInt(originalValue) !== NaN ? parseInt(originalValue) : -1

相关推荐

  1. praseInt 逻辑连用

    2023-12-07 04:58:05       30 阅读
  2. 【电路笔记】-逻辑

    2023-12-07 04:58:05       14 阅读
  3. Integer.parseInt

    2023-12-07 04:58:05       10 阅读
  4. 前端逻辑错误UI崩溃解决问题

    2023-12-07 04:58:05       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 04:58:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 04:58:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 04:58:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 04:58:05       18 阅读

热门阅读

  1. SpringMVC常用注解

    2023-12-07 04:58:05       25 阅读
  2. Spring Boot学习(三十三):集成kafka

    2023-12-07 04:58:05       46 阅读
  3. RK3288升级WebView版本,替换webview app

    2023-12-07 04:58:05       35 阅读
  4. android 13.0 Camera2去掉前置摄像头闪光灯功能

    2023-12-07 04:58:05       36 阅读
  5. ThreadLocal+TaskDecorator实现父子线程 参数传递

    2023-12-07 04:58:05       37 阅读
  6. 【无标题】

    2023-12-07 04:58:05       47 阅读
  7. a href自定义下载文件名

    2023-12-07 04:58:05       42 阅读
  8. 设计模式&委派模式(Delegate Pattern)

    2023-12-07 04:58:05       33 阅读
  9. 【LeetCode】258. 各位相加

    2023-12-07 04:58:05       36 阅读
  10. Vue中的组件通信:从子到父的数据传递

    2023-12-07 04:58:05       40 阅读
  11. C++设计模式——建造者模式(Builder)

    2023-12-07 04:58:05       44 阅读