一、整数转换

在 JavaScript 中,parseInt() 函数会将其参数转换为字符串,然后解析该字符串,并返回一个整数或 NaN。如果 parseInt() 函数的参数是一个非常大的浮点数(如 1000000000000000000000.5),那么它首先会被转换为科学记数法的字符串形式(即 "1e+21"),然后 parseInt() 会尝试从这个字符串中解析出一个整数。

由于 "e" 不是一个有效的数字字符,所以 parseInt("1e+21") 只会解析到 "1",并忽略后面的部分。因此,parseInt(1000000000000000000000.5) 的结果是 1

console.log(parseInt(1000000000000000000000.5)); // 输出: 1

这种行为是由 JavaScript 的类型转换规则和 parseInt() 函数的工作方式共同决定的。

在 JavaScript 中,parseInt()函数将其参数转换为字符串,然后解析该字符串,并返回一个整数或 NaN。当 parseInt() 函数的参数是一个非常小的浮点数(如 0.0000008),它首先被转换为科学记数法的字符串形式(即 "8e-7"),然后 parseInt() 会从这个字符串中解析出一个整数。

由于 "e" 不是一个有效的数字字符,所以 parseInt("8e-7") 只会解析到 "8",并忽略后面的部分。因此,parseInt(0.0000008) 的结果是 8

console.log(parseInt(0.0000008)); // 输出: 8

这种行为是由 JavaScript 的类型转换规则和 parseInt() 函数的工作方式共同决定的。

二、数值转换

表达式 value !== value 是在 JavaScript 中检查一个变量是否为 NaN 的方法。NaN 是唯一一个不等于自身的 JavaScript 类型。

以下是一个例子:

let value = NaN;
if (value !== value) {
console.log('值是 NaN');
} else {
console.log('值不是 NaN');
}

这将输出 '值是 NaN',因为 NaN 不等于 NaN

javascript现代编程系列教程之六——数字型数据类型转换的更多相关文章

  1. RabbitMQ系列教程之六:远程过程调用(RPC)(转载)

    RabbitMQ系列教程之六:远程过程调用(RPC) 远程过程调用(Remote Proceddure call[RPC]) (本实例都是使用的Net的客户端,使用C#编写) 在第二个教程中,我们学习 ...

  2. 高德地图 JavaScript API 开发系列教程(一)

    高德地图 API 提供包括 Web API 即 JavaScript API,Android API,定位API,IOS API,WP API,Win8 API等,本系列教程主要针对高德 JavaSc ...

  3. 珍藏的C语言编程系列教程

    本文有332个文字,大小约为2KB,预计阅读时间1分钟 这是本人珍藏的C语言.C++系列教程. 相信每个Coder的第一门编程语言就是C语言吧, 现在也依然很热门,不谈了.直接上链接,感兴趣的直接存, ...

  4. RabbitMQ系列教程之六:远程过程调用(RPC)

    远程过程调用(Remote Proceddure call[RPC])(本实例都是使用的Net的客户端,使用C#编写)  在第二个教程中,我们学习了如何使用工作队列在多个工作实例之间分配耗时的任务.  ...

  5. 高德地图 JavaScript API 开发系列教程(二)

    上节简单介绍高德地图JavaScript API及网页中基本地图展示.有了地图后我们可以用来做什么?有人说离我最近的超市在哪里,我怎么去?别急,这些功能我们后面都会慢慢实现.今天为大家详细讲解如何在地 ...

  6. js面向对象编程 ---- 系列教程

    原 js面向对象编程:数据的缓存 原 js面向对象编程:如何检测对象类型 原 js面向对象编程:if中可以使用那些作为判断条件呢? 原 js面向对象编程:this到底代表什么?第二篇 原 js面向对象 ...

  7. javascript 高级编程系列 - 基本数据类型

    javascript中的基本数据类型包括: Undefined, Null, Boolean, Number, String 5种数据类型 1. Undefined 类型 (只有一个值 undefin ...

  8. 【前端】CentOS 7 系列教程之六: 安装 mysql 5.7

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_6.html 进入/usr/local/src目录 cd /usr/local/src 下载mysql的 ...

  9. .Net 与 Javascript 混合编程系列

    之前的文章有提到 edge 和 nodejs 交互,通过node的模块为C# 提供一些扩展,这个还是比較方便. 这里说下为什么要使用js. 1.SharpKit是一个用于在编译时将C#语言转换为Jav ...

  10. Linux 网络编程系列教程

    一.基础理论篇 01.网络协议入门 02.LAN.WAN.WLAN.VLAN 和 VPN 的区别 03.IP 地址介绍 04.广播地址介绍 05.无连接和面向连接协议的区别 06.因特网的IP协议是不 ...

随机推荐

  1. 通过python获取SSL证书到期时间

    在前面的文章中曾介绍过如何通过openssl命令获取SSL证书的到期时间:通过zabbix监控ssl证书到期时间. 有人反馈实践中这种方式存在缺陷,可能会出现部分域名证书无法获取的情况,报错如下: 1 ...

  2. TimeLine 时间轴 网站 分享 time.graphics - nodejs 10年图

    话说20年 弹指一挥间 https://time.graphics/line/682014 nodejs 10年图 https://time.graphics/line/598790 资料 2022, ...

  3. Navicat Premium15 解决只能显示前1000条记录问题

    Navicat Premium15 解决只能显示前1000条记录问题 最近使用Navicat Premium15图形化界面操作MySQL的数据库,发现在超过1461条记录的表里,只能显示前1000条, ...

  4. 基于stm32H730的解决方案开发之点亮第一个LED灯

    一 概述 STM32H730超值系列内含ArmCortex-M7内核(具有双精度浮点单元),工作频率可达550 MHz.内嵌的128 KB闪存使意法半导体能够为开发人员提供一种经济划算的解决方案.凭借 ...

  5. 市场主流的G-sensor芯片盘点

    一 前记 1.简介 随着可穿戴智能硬件的广泛发展,G-sensor成了一个必不可少的器件.梳理,测试和运用这些传感器.是做可穿戴产品必不可少的环节. 二 产品解析 1.ST的G-sensor型号LIS ...

  6. Android MaterialButtonToggleGroup使用

    原文地址: Android MaterialButtonToggleGroup使用 - Stars-One的杂货小窝 觉得单选框不好看,发现了一个Material里的单选按钮组,感觉UI还不错,记下使 ...

  7. Linux IPC(进程间通信)摘要(信号灯,共享内存,消息队列,管道)(一)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  8. 优雅的处理挂载window上的函数可能不存在的情况

    背景 在做一个Web JS SDK(A)时,内部会用到另一个Web JS SDK(B)的方法.(文中后续用A/B代替两者) B通常会提供Script和NPM包两种使用方式 使用npm pkg的缺点 增 ...

  9. C#开发计算器类库

    C#开发计算器类库:开发中所涉及到有虚方法,继承,简单工厂等基础知识(编程借鉴'小菜变成成长记'https://www.jb51.net/article/2851.htm) 1.创建父类:计算(Ope ...

  10. 【K8S】Docker向私有仓库拉取/推送镜像报错(http: server gave HTTP response to HTTPS client)

    这里,我们搭建的Harbor仓库的地址为 http://192.168.175.101:1180. 报错信息如下所示. [root@binghe101 ~]# docker login 192.168 ...