千家信息网

JavaScript中的数据类型Number实例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇"JavaScript中的数据类型Number实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面
千家信息网最后更新 2026年11月02日JavaScript中的数据类型Number实例分析

这篇"JavaScript中的数据类型Number实例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"JavaScript中的数据类型Number实例分析"文章吧。

前言

Number 类型使用 IEEE 754 格式表示整数和浮点值(在某些语言中也叫双精度值)。

IEEE二进制浮点数算术标准;

IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。

js中用的就是双精确度(64位)

不同数值类型有不同的数值字面量格式:

  • 十进制整数

  • 八进制(以 8 为基数)

  • 十六进制(以 16 为基数)

1、浮点数

数值中必须包含小数点,而且小数点后面必须至少有一个数字。

经典问题:0.1 + 0.2 == 0.3 吗? 答案是不相等;

因为在浮点数运算过程中存在舍入误差,之所以存在这种舍入错误,是因为使用了IEEE754数值,这种错误并非ECMAScript 所独有。只要是使用这种格式的语言都有这个问题。

2、值的范围

  • 最小数值: Number.MIN_VALUE 5e-324

  • 最大数值: Number.MAX_VALUE 1.797 693 134 862 315 7e+308

  • 数值超出JavaScript表示范围: Infinity(正 无穷大) -Infinity(负无穷大)

  • 确定数值是否为有限数: isFinite()函数

3、NaN

  • 意思:不是数值(not a number)

  • 表示本来要返回数值的操作失败了(而不是抛出错误)

  • 任何涉及 NaN 的操作始终返回 NaN

  • NaN 不等于包括 NaN 在内的任何值, 即console.log(NaN == NaN); // false

  • isNaN()函数, 判断传入其中的参数是否不是数值;

  • isNaN()会尝试把参数转换成数值

console.log(isNaN(NaN)); // trueconsole.log(isNaN('abc')); // trueconsole.log(isNaN('123')); // falseconsole.log(isNaN(true)); // falseconsole.log(isNaN(12)); // false

首先会调用对象的valueOf() 方法,然后再确定返回的值是否可以转换为数值。如果不能,再调用 toString()方法, 并测试其返回值。

4、数值转换

  • 将非数值转换为数值

Number()函数,可用于任何数据类型:

数据类型转换规则
布尔值true为1,false为0
数值直接返回
null0
undefinedNaN
字符串空字符串返回0
数值字符返回对应数字(前面包含加减号的、浮点值、十六进制格式会转换为对应的十进制整数值)
除了上面情况外,都返回NaN
对象调用 valueOf()方法,并按照上述规则转换返回的值。如果转换结果是 NaN,则调用 toString()方法,再按照转换字符串的规则转换。
console.log(Number(false)); // 0console.log(Number(null)); // 0console.log(Number(undefined)); // NaNconsole.log(Number(1)); // 1console.log(Number(0012)); // 10 八进制转换console.log(Number(070)); // 56 八进制转换console.log(Number(0x1f)); // 31 十六进制转换为十进制整数console.log(Number(018)); // 18 忽略前面0console.log(Number(12.23)); // 12.23console.log(Number('123')); // 123console.log(Number('123bule')); // NaNconsole.log(Number(' 123')); // 123console.log(Number('')); // 0

parseInt()函数 ++需要得到整数时优先使用 parseInt()函数;++ ( Number()函数转换字符串相对复杂,如果已经明确就是想要取整的话,优先使用parseInt()函数 )

parseInt()函数会忽略字符串最前面的空格,第一个非空格字符开始转换;如果第一个字符不是数值字符、加号或减号,parseInt()立即 返回 NaN。

parseInt() 更关注于字符串是否包含数值,如下:

console.log(parseInt(123)); // 123console.log(parseInt(0123)); // 83 解释为八进制整数。console.log(parseInt(false)); // NaNconsole.log(parseInt('123')); // 123console.log(parseInt('0123')); // 123console.log(parseInt('123.23')); // 123console.log(parseInt('123bule')); // 123console.log(parseInt(' 123')); // 123console.log(parseInt('23.74')); // 23console.log(parseInt('')); // NaN// 与Number()区别console.log(Number('')); // 0console.log(Number(false)); // 0console.log(Number('123bule')); // 123// 从这里可以看parseInt() 更关注于字符串是否包含数值
parseInt("0xAF", 16); // 175parseInt("AF", 16); // 175 提供了16进制参数,可以省略0xparseInt("AF");      // NaN , 没有提供第二个参数,就不可以

不传底数参数相当于让 parseInt()自己决定如何解析,所以为避免解析出错,建议始终传给它第二个参数。

parseInt()函数可以接收第二个参数,用于指定底数(进制数);

如下:

parseFloat()函数 同parseInt()函数类似。区别之处在于,一个是它识别有效的小数点(也就是第一次出现的小数点,再后面的再出现小数点就都忽略了);另一个是始终忽略字符串开头的零; parseFloat()只解析十进制值,不能指定底数; 十六进制数值始终会返回 0

如下:

console.log(parseFloat('123bule')); // 123console.log(parseFloat('23.74'));  // 23.74console.log(parseFloat('023.74')); // 23.74console.log(parseFloat('23.74.2')); // 23.74console.log(parseFloat(0xAF));  // 175console.log(parseFloat('0xAF')); // 0console.log(parseFloat(012)); // 10console.log(parseFloat('012')); // 12

以上就是关于"JavaScript中的数据类型Number实例分析"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

数值 函数 字符 类型 参数 字符串 数据 精确 内容 小数 小数点 整数 精确度 八进制 十六进制 十进制 方法 格式 浮点 十进 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 互联网科技名片 美国互联网保险保险科技 互联网科技缩写 有木互联网科技 互联网科技公司做什么 四个字互联网科技公司取名 海南购全球互联网科技 云创客互联网科技公司 剑昆互联网络科技有限公司临桂 宝灵互联网科技有限公司 互联网科技扶贫时间 银川新华互联网科技学校联系电话 互联网在线教育科技创业 明优互联网科技有限公司 高科技互联网套路 云南省自由互联网科技有限公司 扫呗互联网科技有限公司 陕西九四连强互联网科技有限公司 互联网科技创新创业项目 江苏根荣互联网科技 科技赋能下的互联网金融 合肥互联网科技公司 农村开互联网科技讲堂 江苏南京365互联网科技 重庆威客帮互联网科技 互联网校园科技培训 晓花互联网科技有限公司网址 烟台灵鸽互联网科技有限公司 互联网科技股为什么大涨
0