javascript现代编程系列教程之六——数字型数据类型转换
一、整数转换
在 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现代编程系列教程之六——数字型数据类型转换的更多相关文章
- RabbitMQ系列教程之六:远程过程调用(RPC)(转载)
RabbitMQ系列教程之六:远程过程调用(RPC) 远程过程调用(Remote Proceddure call[RPC]) (本实例都是使用的Net的客户端,使用C#编写) 在第二个教程中,我们学习 ...
- 高德地图 JavaScript API 开发系列教程(一)
高德地图 API 提供包括 Web API 即 JavaScript API,Android API,定位API,IOS API,WP API,Win8 API等,本系列教程主要针对高德 JavaSc ...
- 珍藏的C语言编程系列教程
本文有332个文字,大小约为2KB,预计阅读时间1分钟 这是本人珍藏的C语言.C++系列教程. 相信每个Coder的第一门编程语言就是C语言吧, 现在也依然很热门,不谈了.直接上链接,感兴趣的直接存, ...
- RabbitMQ系列教程之六:远程过程调用(RPC)
远程过程调用(Remote Proceddure call[RPC])(本实例都是使用的Net的客户端,使用C#编写) 在第二个教程中,我们学习了如何使用工作队列在多个工作实例之间分配耗时的任务. ...
- 高德地图 JavaScript API 开发系列教程(二)
上节简单介绍高德地图JavaScript API及网页中基本地图展示.有了地图后我们可以用来做什么?有人说离我最近的超市在哪里,我怎么去?别急,这些功能我们后面都会慢慢实现.今天为大家详细讲解如何在地 ...
- js面向对象编程 ---- 系列教程
原 js面向对象编程:数据的缓存 原 js面向对象编程:如何检测对象类型 原 js面向对象编程:if中可以使用那些作为判断条件呢? 原 js面向对象编程:this到底代表什么?第二篇 原 js面向对象 ...
- javascript 高级编程系列 - 基本数据类型
javascript中的基本数据类型包括: Undefined, Null, Boolean, Number, String 5种数据类型 1. Undefined 类型 (只有一个值 undefin ...
- 【前端】CentOS 7 系列教程之六: 安装 mysql 5.7
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_6.html 进入/usr/local/src目录 cd /usr/local/src 下载mysql的 ...
- .Net 与 Javascript 混合编程系列
之前的文章有提到 edge 和 nodejs 交互,通过node的模块为C# 提供一些扩展,这个还是比較方便. 这里说下为什么要使用js. 1.SharpKit是一个用于在编译时将C#语言转换为Jav ...
- Linux 网络编程系列教程
一.基础理论篇 01.网络协议入门 02.LAN.WAN.WLAN.VLAN 和 VPN 的区别 03.IP 地址介绍 04.广播地址介绍 05.无连接和面向连接协议的区别 06.因特网的IP协议是不 ...
随机推荐
- 单词本z ambition 雄心 amb = ab = about = around = 环绕
ambition 雄心 amb = ab = about = around = 环绕 it = go = 走 ion 名词 重点是 amb 环绕 这里是抽象含义 表示内心向外扩展 所以是雄心 ambu ...
- .bat 批处理 手册 教程
有时候bat写个脚本 还是挺方便的,网上也没有不错的手册,有时间再整理看吧.网上找几个,先留存. 系统变量 %USERPROFILE% https://blog.csdn.net/ztx114/art ...
- think about 和 think of 区别
about 是 on by out 简称 about 在旁边 在外围 周边 think about you 想你有关的事 of 是 belong to 什么什么的 of指的是 这个人或者这个事本身相关 ...
- js实现展开多级数组
1.递归 function steamrollArray(arr) { let res = [] for (const a of arr) { if(a instanceof Array){ res ...
- 可视化学习:WebGL实现缩放平移
前言 在上篇文章中,我们使用WebGL实现了网格背景,当时有提到说使用WebGL来实现的好处之一,是网格背景可以与画布上的其他元素更好地融合,比如一起缩放平移,那么在WebGL中怎么实现缩放和平移呢? ...
- 记录--实时音视频功能简析(live-pusher与live-player)
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 使用须知 2017年下半年,微信6.5.21版本支持在线音视频功能.开发者可以通过两个音视频组件 和 实现实时地在线直播.视频通话.语音通 ...
- 从零开始写 Docker(八)---实现 mydocker run -d 支持后台运行容器
本文为从零开始写 Docker 系列第八篇,实现类似 docker run -d 的功能,使得容器能够后台运行. 完整代码见:https://github.com/lixd/mydocker 欢迎 S ...
- FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
FFmpeg支持Linux.macOS.Windows.Android等操作系统,其中Linux系列包括Ubuntu.Debian.Mint.CentOS.RHEL.Fedora等分支.FFmpeg官 ...
- [Python]细节、经验
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/132333324 出自[进步* ...
- quartus之rom的IP测试
quartus之rom的IP测试 1.rom的作用 rom,就是只读存储器,内部数据在下载电路时就已经确认,不能使用信号驱动更改,只能够读取,一般用于比较重要的配置数据.在quartus中,可以直接调 ...