praseInt 和 逻辑或连用

news/2024/7/10 2:21:47 标签: javascript, 开发语言, ecmascript, vue, json

这是做项目时遇到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

http://www.niftyadmin.cn/n/5223469.html

相关文章

HTTP代理配置方法详解

HTTP代理是一种常见的网络代理服务器,它可以在客户端和服务器之间充当中间人,帮助客户端访问互联网资源。在实际应用中,我们可能需要配置HTTP代理来实现网络访问。本文将介绍HTTP代理的配置方法。 HTTP代理的配置方法 HTTP代理的配置方法主要…

哈希和unordered系列封装(C++)

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数,哈希碰撞哈希函数(常用的两个)哈希冲突(碰撞)小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子(扩容) 开散列哈希桶代码实现扩…

03、K-means聚类实现步骤与基于K-means聚类的图像压缩(1)

03、K-means聚类实现步骤与基于K-means聚类的图像压缩(1) 03、K-means聚类实现步骤与基于K-means聚类的图像压缩(1) 03、K-means聚类实现步骤与基于K-means聚类的图像压缩(2) 开始学习机器学习啦&#xf…

肖sir__mysql之单表练习题2__(2)

mysql之单表练习题 一.建表语句 create table grade(class int(4),chinese int(8),english int(4),math int(8),name varchar(20),age int(8),sid int(4)primary key auto_increment) DEFAULT charsetutf8; insert into grade(class,chinese,english,math,name,age)values(1833…

Scala--1

package scala02object scala01_comment {def main(args: Array[String]): Unit {//// 单行注释/*多行注释*//*** 文档注释*/// 代码规范// 1.将代码格式化 ctrl alt lval a: Int 10// 2.代码不要写过长}}package scala02object scala_valANDVar {def main(args: Array[Strin…

CSS逻辑组合伪类

CSS 的逻辑组合伪类有 4 种,分别是::not()、:is()、:where()和:has()。 否定伪类:not() 否定伪类,是在元素与括号里面的参数不匹配的时候,就会对这个伪类进行匹配。比如::not(span):{color:red},这就会匹…

webpack 使用打包报错 ERROR in node_modules\@types\node\ts4.8\assert.d.ts

报错如下: 解决方式,先查看自己的 node 版本 node -v然后再安装 types/node 对应版本,比如我的如下 npm i types/node14.10.0 -D然后再次打包,就没有报错了

Vue中使用正则表达式进行文本匹配和处理的方法

1. 正则表达式基础 正则表达式是一种用来匹配字符串的模式。它由普通字符(例如字符 a 到 z)和特殊字符(称为"元字符")组成。以下是一些基本的正则表达式示例: 匹配邮箱的正则表达式: /^[\w-](\…