一、整数转换

在 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. Spring Boot学习日记5

    启动器 spring-boot-starter 启动器:说白了就是SpringBoot的启动场景 比如spring-boot-starter-web,会帮我们自动导入web环境所有的依赖 spring ...

  2. Android 开发Day10

    这是main里面的所有代码,按版本修改过 AndroidManifest.xml <?xml version="1.0" encoding="utf-8" ...

  3. 记录--vue3 setup 中国省市区三级联动options最简洁写法,无需任何库

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在写页面的时候,发现表单里面有一个省市区的 options 组件要写,因为表单很多地方都会用到这个地址选择,我便以为很简单嘛. 虽然很简单 ...

  4. Python解压当天创建的ZIP文件到指定的文件夹中

    1. 首先,导入了需要使用的模块: - `zipfile`:用于处理ZIP文件的模块. - `os`:提供了与操作系统交互的功能. - `shutil`:用于高级文件操作,例如移动文件等. - `da ...

  5. 用了两周开源堡垒机OneTerm,我有一些建议

    上一篇文章分享了一款简洁且强大的开源堡垒机OneTerm,功能完善,代码简单,GO语言开发,用来学习很合适,拿来自用也没问题.堡垒机该有的核心功能基本都有了,方便与自有系统集成,我使用了两周,功能上没 ...

  6. EVENG导入Win7镜像以后可以启动无法VNC打开

    原因:未安装支持 eveng 的 vncviewer 解决方法:下载 vncviewer: https://pan.eve-ng.cn/Tools/EVE-NG/Client/EVE-NG-Win-C ...

  7. 命令行部署KingbaseES流复制

    建立系统数据库安装用户组及用户,在所有的节点执行 root用户登陆服务器,创建用户组及用户并且设置密码 groupadd -g 2000 kingbase useradd -G kingbase -g ...

  8. 安卓day_1

    今天买了安卓学习的相关书籍,在网站上找到了安卓学习的视频,了解了安卓学习的方向.

  9. CSS样式中的各种居中方式

    1.水平居中 将margin-left和margin-right属性设置为auto,从而达到水平居中的效果. 代码: margin:0 auto; 2.文字水平垂直居中 利用line-height设为 ...

  10. 基于IDEA javaweb项目目录结构

    https://www.pianshen.com/article/62631355687/