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
相关推荐
洛克大航海12 分钟前
Ajax基本使用
java·javascript·ajax·okhttp
用户9163574409514 分钟前
LeetCode热题100——11.盛最多水的容器
javascript·算法
苏打水com24 分钟前
前端框架深度解析:Vue.js 3 从 Composition API 到生态升级,解锁企业级开发新能力
vue
凡大来啦29 分钟前
v-for渲染的元素上使用ref
前端·javascript·vue.js
你们瞎搞40 分钟前
arcgis矢量数据转为标准geojson格式
python·arcgis·json·地理空间数据
郝学胜-神的一滴41 分钟前
Python中的鸭子类型:理解动态类型的力量
开发语言·python·程序人生·软件工程
练习前端两年半1 小时前
🔍 你真的会二分查找吗?
前端·javascript·算法
晴殇i1 小时前
告别 localStorage!探索前端存储新王者 IndexedDB
前端·javascript·面试
Mintopia1 小时前
Next.js 的分布式基础思想:从 CAP 到事件风暴,一路向“可扩展”的银河系巡航
前端·javascript
Moment1 小时前
Next.js 16 Beta:性能、架构与开发体验全面升级 💯💯💯
前端·javascript·github