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. Sparse Filtering 学习笔记(一)网络结构与特征矩阵

      Sparse Filtering 是一个用于提取特征的无监督学习算法,与通常特征学习算法试图建模训练数据的分布的做法不同,Sparse Filtering 直接对训练数据的特征分布进行分析,在所谓 ...

  2. 天气webservices

    Web现状 Web服务 概念 具有web服务 构成 UDDI WSDL 天气预报 web服务现状     记的以前看VB.NET时中间就介绍了WSDL,而今又学到web服务,所以用天气预报的实例学习一 ...

  3. js每天进步一点点4

    输入数字的验证

  4. iOS平台快速发布HT for Web拓扑图应用

    iOS平台一直是封闭的生态圈,iOS开发者要缴纳年费加入开发者计划才可进行iOS平台的APP开发测试,所开发的APP需要上传到App Store经过苹果审核以后才可对外发布.如果要开发企业内部应用,则 ...

  5. VUE 表单元素双向绑定总结

    checkbox最基本用法: <input type="checkbox" v-model="inputdata" checked/> <in ...

  6. VS自动生成的packages.config配置文件有什么用?

    通过nuget管理安装了程序包之后,Visual Studio会自动生成一个关于这些程序包版本的配置文件,删除或者保留它对程序不会造成什么影响.

  7. 前端实现QQ会话功能(常用笔记3)

    <a href="tencent://message/?uin=客服QQ号码&Menu=yes" target="blank"></a ...

  8. Bootstrap学习笔记系列1-------Bootstrap网格系统

    Bootstrap网格系统 学习笔记 [TOC] 简单网格 先上代码再解释 <!DOCTYPE html> <html> <head> <title>B ...

  9. 一些sql二

    1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1(仅用于SQlServer)法二:sel ...

  10. C#的变迁史 - C# 4.0篇

    C# 4.0 (.NET 4.0, VS2010) 第四代C#借鉴了动态语言的特性,搞出了动态语言运行时,真的是全面向“高大上”靠齐啊. 1. DLR动态语言运行时 C#作为静态语言,它需要编译以后运 ...