Number对象

本文参考MDN做的详细整理,方便大家参考MDN

JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。

new Number(value);

如果参数无法被转换为数字,则返回 NaN。

在非构造器上下文中 (如:没有 new 操作符),Number(x) 能被用来执行类型转换。

属性:

Number.EPSILON IE Safari无

两个可表示(representable)数之间的最小间隔。EPSILON 属性的值接近于 2.2204460492503130808472633361816E-16, 或者 2的-52次方.

Number.MAX_SAFE_INTEGER IE无

在 JavaScript 中最大的安全整数 (2的53次方 - 1)。值是9007199254740991,这个数字形成的原因是,Javascript在IEEE 754 中使用double-precision floating-point format numbers作为规定,在这个规定中能安全的表示数字的范围在-(2的53次方 - 1) 到 2的53次方 - 1之间.

Number.MAX_VALUE

能表示的最大正数。最大的负数是 -MAX_VALUE。MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 "Infinity"。

if (num1 * num2 <= Number.MAX_VALUE) {
func1();
} else {
func2();
}

Number.MIN_VALUE

能表示的最小正数即最接近 0 的正数 (实际上不会变成 0)。最小的负数是 -MIN_VALUE。MIN_VALUE 的值约为 5e-324。小于 MIN_VALUE ("underflow values") 的值将会转换为 0。

if (num1 / num2 >= Number.MIN_VALUE){...}

Number.NaN

特殊的“非数字”值(Not-A-Number)。和 NaN 相同

Number.NEGATIVE_INFINITY

特殊的负无穷大值,在溢出时返回该值。它和全局对象的 Infinity 属性的负值相同,该值的表现同数学上的无穷大有点儿不同(见MDN)

Number.POSITIVE_INFINITY

特殊的正无穷大值,在溢出时返回改值。它同全局对象 Infinity 属性的值相同,该值的表现同数学上的无穷大有点儿不同(见MDN)

Number.prototype

表示 Number 构造函数的原型。

静态方法

Number.isNaN() IE Safari无

用来检测传入的值是否是 NaN。只有在参数是真正的数字类型,且值为 NaN 的时候才会返回 true。

在 JavaScript 中,NaN 最特殊的地方就是,我们不能使用相等运算符(== 和 ===)来判断一个值是否是 NaN,因为 NaN == NaN 和 NaN === NaN 都会返回 false。因此,必须要有一个判断值是否是 NaN 的方法

和全局函数 isNaN() 相比,该方法不会强制将参数转换成数字,只有在参数是真正的数字类型,且值为 NaN 的时候才会返回 true。

兼容写法Polypill:

Number.isNaN = Number.isNaN || function(value) {
return typeof value === "number" && isNaN(value);
}

Number.isFinite() IE Safari无

用来检测传入的参数是否是一个有穷数。和全局的 isFinite() 函数相比,这个方法不会强制将一个非数字的参数转换成数字,这就意味着,只有真正的数字才有可能返回 true。

Polypill

Number.isFinite = Number.isFinite || function(value) {
return typeof value === "number" && isFinite(value);
}

Number.isInteger() IE Safari无

确定传递的值类型是“number”,且是整数。

Polypill

Number.isInteger = Number.isInteger || function(value) {
return typeof value === "number" &&
isFinite(value) &&
Math.floor(value) === value;
};

Number.isSafeInteger() 只有Firefox实现

用来判断传入的参数值是否是一个“安全整数”(处于 -(2的53次方 -1) 和 2的53次方 -1 之间的整数)。

Number.parseFloat() IE Safari无

把一个字符串解析成浮点数,和全局对象 parseFloat() 一样。

Number.parseInt(string[, radix]) IE Safari无

根据给定的进制数把一个字符串解析成整数,和全局对象 parseInt() 一样。

Number 实例方法

数字字面量直接调用以下方法:只要能够让JavaScript引擎不混淆小数点和对象的点运算符,各种写法都能用,JavaScript会把第一个点理解成小数点(即10.0),把第二个点理解成调用对象属性,从而得到正确结果。

(10).toString(2)
10..toString(2) // "1010"
10 .toString(2) // "1010"
10.0.toString(2) // "1010"
10['toString'](2) // "1010"

Number.prototype.toExponential(n)

将一个数转为科学计数法形式字符串。参数表示小数点后有效数字的位数,范围为0到20,超出这个范围,会抛出一个RangeError。

Number.prototype.toFixed(x)

将一个数转为指定位数x的小数,返回这个小数对应的字符串(会进行四舍五入),位数x有效范围为0到20,超出这个范围将抛出RangeError错误。

Number.prototype.toLocaleString()

返回一个根据本地语言环境的数字格式字符串。重写了Object.prototype.toLocaleString() 方法

Number.prototype.toPrecision(n)

用于将一个数转为指定位数n的有效数字的字符串,参数n为有效数字的位数,范围是1到21,超出这个范围会抛出RangeError错误。该方法执行的四舍五入不可靠,跟浮点数不是精确储存有关,如:

(12.35).toPrecision(3) // "12.3"
(12.25).toPrecision(3) // "12.3"
(12.15).toPrecision(3) // "12.2"
(12.45).toPrecision(3) // "12.4"

Number.prototype.toString(radius)

用来将一个数值转为字符串形式.

可选的参数radius,表示输出的进制,默认是10进制

Number.prototype.valueOf()

返回一个 Number 对象的基本数字值.。重写了 Object.prototype.valueOf() 方法.

原生JS:Number对象详解的更多相关文章

  1. JS变量对象详解

    JS变量对象详解 开年之后工作热情一直不是很高,这几天一直处于消极怠工状态.早上不想起床,起床了不想上班.明明放假之前工作热情还一直很高,一直心心念念的想把小程序项目怼出来,结果休假回来之后画风完全不 ...

  2. JS DATE对象详解

    1.建立时间对象:可获取年,月,日,星期,时,分,秒 var d = new Date(); console.log(d.getFullYear()+'年'+d.getMonth()+'月'+d.ge ...

  3. 前端高质量知识(三)-JS变量对象详解

    在JavaScript中,我们肯定不可避免的需要声明变量和函数,可是JS解析器是如何找到这些变量的呢?我们还得对执行上下文有一个进一步的了解. 在上一篇文章中,我们已经知道,当调用一个函数时(激活), ...

  4. JS window对象详解

    window 是客户端浏览器对象模型的基类,window 对象是客户端 JavaScript 的全局对象.一个 window 对象实际上就是一个独立的窗口,对于框架页面来说,浏览器窗口每个框架都包含一 ...

  5. js对象详解(JavaScript对象深度剖析,深度理解js对象)

    js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...

  6. JS中的event 对象详解

    JS中的event 对象详解   JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...

  7. ES6,ES2105核心功能一览,js新特性详解

    ES6,ES2105核心功能一览,js新特性详解 过去几年 JavaScript 发生了很大的变化.ES6(ECMAScript 6.ES2105)是 JavaScript 语言的新标准,2015 年 ...

  8. dom对象详解--document对象(二)

       dom对象详解--style对象 style对象 style对象和document对象下的集合对象styleSheets有关系,styleSheets是文档中所有style对象的集合,这里讲解的 ...

  9. Vue.js 数据绑定语法详解

    Vue.js 数据绑定语法详解 一.总结 一句话总结:Vue.js 的模板是基于 DOM 实现的.这意味着所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强.Vue ...

随机推荐

  1. 【转载】经典SQL语句大全

    [原文地址]http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html 一.基础 1.说明:创建数据库CREATE DATABAS ...

  2. Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)一

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中. 使用这个类库中的类, Spring 将会加载必要的MyBatis工厂类和 session 类. 这个类库 ...

  3. Network - SNMP

    Simple Network Management ProtocolWikipediahttps://en.wikipedia.org/wiki/Simple_Network_Management_P ...

  4. vs2010统计项目代码总行数

    按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$ 找到最后一行就是结果

  5. Apache Kylin 部署之不完全指南

    1. 引言 Apache Kylin(麒麟)是由eBay开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据.底层存储用的是HBase,数据输入与cu ...

  6. 二、Sink例程

    1. Sink例程 CSR粗略的将audio蓝牙设备分为了两大类:sink和source设备,并分别提供了两类设备的例程,配置工具,说明文档.如对于sink设备,提供了sink app例程,SinkU ...

  7. Maven提高篇系列之(四)——使用Profile

    这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...

  8. SQL Server时间粒度系列----第2节日期、周时间粒度详解

    本文目录列表: 1.从MySQL提供的TO_DAYS和FROM_DAYS这对函数说起2.SQL Server日期时间粒度3.SQL Server周有关时间粒度 4.总结语 5.参考清单列表   从My ...

  9. vue之watch用法

    对应一个对象,键是观察表达式,值是对应回调.值也可以是方法名,或者是对象,包含选项.在实例化时为每个键调用 $watch() ; //使用官方vue-cli脚手架书写<template> ...

  10. C语言学习010:fopen读写文件

    在文件input.csv文件中,我们有数据如下 Apple Pear Litchis Pineapple Watermelon 现在我们将input.csv文件下的读取并写入到output.csv文件 ...