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. 推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】

    最近偶尔发现一个算法编程学习的论坛,刚开始有点好奇,也只是注册了一下.最近有时间好好研究了一下,的确非常赞,所以推荐给大家.功能和介绍看下面介绍吧.首页的标题很给劲,很纯粹的Coding社区....虽 ...

  2. Dijkstra算法(一)之 C语言详解

    本章介绍迪杰斯特拉算法.和以往一样,本文会先对迪杰斯特拉算法的理论论知识进行介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现. 目录 1. 迪杰斯特拉算法介绍 2. 迪杰斯特拉算法 ...

  3. Spark入门实战系列--1.Spark及其生态圈简介

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .简介 1.1 Spark简介 年6月进入Apache成为孵化项目,8个月后成为Apache ...

  4. 机器学习&数据挖掘笔记_12(对Conjugate Gradient 优化的简单理解)

    数学优化方法在机器学习算法中至关重要,本篇博客主要来简单介绍下Conjugate Gradient(共轭梯度法,以下简称CG)算法,内容是参考的文献为:An Introduction to the C ...

  5. 原生js编写的安全色拾色器

    <html > <head> <meta http-equiv="Content-Type" content="text/html; cha ...

  6. express 框架之session

    一.什么是session? 最近在学习node.js 的express框架,接触到了关于session方面的内容.翻阅了一些的博客,学到了不少东西,发现一篇博文讲的很好,概念内容摘抄如下: Sessi ...

  7. HTML5矢量实现文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  8. 实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法

    关于ajax跨域调用WCF服务的方法很多,经过我反复的代码测试,认为如下方法是最为简便的,当然也不能说别人的方法是错误的,下面就来上代码,WCF服务定义还是延用上次的,如: namespace Wcf ...

  9. Log4net 日志使用介绍

    概述 Log4net 有三个主要组件:loggers,appenders 和 layouts.这三个组件一起工作使得开发者能够根据信息类型和等级(Level)记录信息,以及在运行时控制信息的格式化和信 ...

  10. js、jquery验证时间格式

    下面验证的格式是2012-2-1 或2010-02-01 var reDate = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12 ...