首页 > 其他分享 >22. JS Number(数字)对象

22. JS Number(数字)对象

时间:2022-10-10 16:12:10浏览次数:56  
标签:Infinity 数字 22 对象 NaN Number JS var

1. 前言

在 JavaScript 中您可以使用十进制、十六进制或八进制表示法来表示整数或浮点数。与其它编程语言不同,JavaScript 中的数字并不区分整数和浮点数,统一使用 IEEE754 标准(二进制浮点数算术标准)的 64 位浮点格式表示数字,能表示的最大值(Number.MAX_VALUE)为 ±1.7976931348623157e+308,最小值(Number.MIN_VALUE)为 ±5e-324。示例代码如下:

var x = 123;    // 整数
var y = 3.14;   // 浮点数
var z = 0xff;   // 十六进制数:255

对于比较大的数字可以使用指数表示法来表示,例如 6.02e+23 等于 6.02 x 10²³,示例代码如下:

var x = 1.57e4;     // 等于 15700
var y = 4.25e+6;    // 等于 4250000
var z = 4.25e-6;    // 等于 0.00000425

提示:JavaScript 中能够表示的最大的整数是 2⁵³ - 1,即 9007199254740991,能够表示的最小整数是 -(2⁵³ - 1),即 -9007199254740991。

除了可以使用十进制表示数字外,您也可以使用八进制或十六进制表示法来表示数字,其中八进制表示法使用 0 作为前缀,十六进制表示法使用 0x 作为前缀,示例代码如下:

var a = 0377;     // 等于 255
var b = 0123;     // 等于 83
var c = 0xff;     // 等于 255
var d = 0xb4;     // 等于 180

注意:整数可以用十进制、十六进制和八进制表示法表示,浮点数可以用十进制或指数表示法表示。

2.  ±Infinity(无穷)

Infinity 是一个特殊的值,表示无穷大。当一个表达式的运算结果超过了 JavaScript 所能表示的数字上限或下限时,JavaScript 就会使用 Infinity 或 -Infinity 表示这个结果,其中 Infinity 表示正无穷大,-Infinity 表示负无穷大。示例代码如下:

var a = 5 / 0;      // 等于 Infinity
var b = -5 / 0;     // 等于 -Infinity

3.  NaN(非数字)

NaN 同样是 JavaScript 中的一个特殊值,用来表示某个值不是数字。NaN 不等于(通过 ==、!=、===、!=== 比较)其它任何值(包括另外一个 NaN 值),使用 isNaN() 函数可以判断一个数是否为 NaN。

以下几种操作会返回 NaN:

  • 使用函数无法将参数转换为数字时会返回 NaN,例如 parseInt("abc")、new Number("abc");
  • 结果不是实数的数学运算,例如 Math.sqrt(-1);
  • 任何操作数中包含 NaN 的表达式,例如 5 * NaN;
  • 涉及字符串的非加法运算,且字符串无法自动转换为数字,例如 "foo" / 5。

4.  Number 对象

Number 对象是原始数值的包装对象,创建 Number 对象的语法格式如下:

var myNum = new Number(value);
var myNum = Number(value);

其中 value 为要创建的 Number 对象的数值,若 value 为一个非数字的值,则会尝试将其转换为数字,若转换失败则会返回 NaN。

当 Number() 函数和 new 运算符一起使用时,会创建一个新的 Number 对象。如果不用 new 运算符,把 Number() 当作一个函数来调用,则会将其中的参数转换为一个数值,并且返回这个值(如果转换失败,则返回 NaN)。

示例代码如下:

var a = new Number("123");
var b = Number("456");
var c = 789;
var d = new Number("abc");
document.write(typeof a + "<br>");      // 输出:object
document.write(typeof b + "<br>");      // 输出:number
document.write(typeof c + "<br>");      // 输出:number
document.write(d + "<br>");             // 输出:NaN

5.  Number 属性

Number 对象中提供了一些属性,如下表所示:

属性描述
Number.MAX_VALUE JavaScript 中所能表示的最大值
Number.MIN_VALUE JavaScript 中所能表示的最小值
Number.NaN 非数字
Number.NEGATIVE_INFINITY 负无穷,在溢出时返回
Number.POSITIVE_INFINITY 正无穷,在溢出时返回
Number.EPSILON 表示 1 与 Number 所能表示的大于 1 的最小浮点数之间的差
Number.MIN_SAFE_INTEGER 最小安全整数,即 -9007199254740991
Number.MAX_SAFE_INTEGER 最大安全整数,即 9007199254740991

6.  Number 方法

除了属性外,Number 对象中还提供了一些方法,如下表所示:

方法描述
Number.parseFloat() 将字符串转换成浮点数,和全局方法 parseFloat() 作用相同
Number.parseInt() 将字符串转换成整型数字,和全局方法 parseInt() 作用相同
Number.isFinite() 判断 Number 对象是否为有穷数
Number.isInteger() 判断 Number 对象是否为整数
Number.isNaN() 判断 Number 对象是否为 NaN 类型
Number.isSafeInteger() 判断 Number 对象是否为安全整数,即范围为 -(2⁵³ - 1)到 2⁵³ - 1 之间的整数
Number.toString() 把 Number 对象转换为字符串,使用指定的基数
Number.toLocaleString() 把 Number 对象转换为字符串,使用本地数字格式顺序
Number.toFixed() 把 Number 对象转换为字符串,结果的小数点后有指定位数的数字
Number.toExponential() 把 Number 对象的值转换为指数计数法
Number.toPrecision() 把 Number 对象格式化为指定的长度
Number.valueOf() 返回一个 Number 对象的基本数字值

 

标签:Infinity,数字,22,对象,NaN,Number,JS,var
From: https://www.cnblogs.com/jiajunling/p/16776059.html

相关文章

  • 报告分享|2022年中国生物基可降解材料技术与行业研究报告
    报告链接:http://tecdat.cn/?p=29087目前,生物基可降解材料市场上最典型的产品为PLA(polylacticacid/聚乳酸)、PHA(polyhydroxyalkanoates/聚羟基脂肪酸酯)。两类产品技术水......
  • 21. JS对象的创建和使用
    1.前言JavaScript是一种面向对象的编程语言,在JavaScript中几乎所有的东西都是对象。因此,要想有效的使用JavaScript,首先需要了解对象的工作原理以及如何创建并使用对......
  • 20. JS作用域(全局作用域+局部作用域)
    1.前言在JavaScript中,您可以在任意位置声明变量,但不同的位置会影响变量的可用范围,这个范围称为作用域。作用域可以大致分为两种类型,分别是全局作用域和局部作用域。下......
  • 2022.10.10 POI
    POI与easyExcel应用场景将用户信息导出为excel表格将Excel表中的信息录入到网站数据库,大大减小网站数据的录入量!开发中经常会涉及到excel的处理,如导出Excel到......
  • TZOJ 7685: 最短路径 (dijstra/输出路径pre)
    描述  给定n个顶点的带权有向图,若从顶点x到顶点y之间存在一条路径,那么这条路径的长度定义为路径上各条边的权值之和。现在请你找出从顶点1到顶点n的一条最短路径。......
  • 2022第一次学习任务
    2022第一次学习任务内容比较多:)A.环境配置安装虚拟机(这部分我很早就完成了,具体步骤就不详细说明了)安装vm及Linux系统镜像这一部分步骤比较清晰,主要参考VMware虚拟......
  • 16. JS for of循环语句的用法
    1.前言JSforof循环是ECMAScript6中新添加的一个循环方式,与 forin 循环类似,也是普通 for 循环的一种变体。使用forof循环可以轻松的遍历数组或者其它可遍历......
  • Matlab R2022b 到底香不香?
     11时隔半年,又到了更新Matlab的季节了......R2022b看着挺香的:2345看下我们所重点关注的AppBuilding和DeepLearningToolbox:AppBuilding87DeepLearnin......
  • 14. JS for循环语句的用法
    1.前言前面我们简单介绍了 while 循环和 dowhile 循环,本节再来介绍另外一种循环——for循环。1.1 JSfor循环语法JSfor循环适合在已知循环次数时使用,语法格......
  • 【集训总结】CSP-S 2022 机房集训总结
    CSP-S2022校内集训Day-18[LNOI2014]LCA/[GXOI/GZOI2019]旧词Link[NOIP2016]天天爱跑步......