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
相关推荐
又见野草2 分钟前
C++类和对象(下)
开发语言·c++
小马_xiaoen5 分钟前
Proxy 与 Reflect 从入门到实战:ES6 元编程核心特性详解
前端·javascript·ecmascript·es6
rit843249912 分钟前
基于MATLAB的环境障碍模型构建与蚁群算法路径规划实现
开发语言·算法·matlab
lang2015092817 分钟前
Java JSR 250核心注解全解析
java·开发语言
Wpa.wk19 分钟前
接口自动化测试 - 请求构造和响应断言 -Rest-assure
开发语言·python·测试工具·接口自动化
czhc114007566328 分钟前
协议 25
java·开发语言·算法
ae_zr33 分钟前
QT动态编译应用后,如何快速获取依赖
开发语言·qt
gjxDaniel35 分钟前
Kotlin编程语言入门与常见问题
android·开发语言·kotlin
摘星编程1 小时前
React Native + OpenHarmony:ImageSVG图片渲染
javascript·react native·react.js
jiang_changsheng1 小时前
环境管理工具全景图与深度对比
java·c语言·开发语言·c++·python·r语言