浅谈JavaScript Math和Number对象

1. Math 对象

1.1 介绍

  Math 对象,是数学对象,提供对数据的数学计算,如:获取绝对值、向上取整等。无构造函数,无法被初始化,只提供静态属性和方法。

1.2 构造函数

  无 :Math 对象无构造函数,无法被初始化,只提供静态属性和方法。

1.3 静态属性

1.3.1 Math.E :常量e。返回自然对数的底数:2.718281828459045

1.3.2 Math.PI :常量π。返回圆周率的值 :3.141592653589793

1.4 静态方法

1.4.1 Math.sin(value) :正弦函数 1.4.2 Math.cos(value) :余弦函数 1.4.3 Math.tan(value) :正切函数 1.4.4 Math.asin(value) :反正弦函数 1.4.5 Math.acos(value) :反余弦函数 1.4.6 Math.atan(value) :反正切函数 1.4.7 Math.abs(value) :返回绝对值

参数:

①value {Number | NumberStr} :数字或者纯数字的字符串。

返回值:

{Number} 返回参数的绝对值数字。若参数不为数字,返回NaN。

示例:

代码如下:
123 :纯数字字符串 Math.abs('-123'); // => 123 Math.abs(123); // => 123 Math.abs(-123); // => 123 Math.abs('123a'); // => NaN :非纯数字字符串

1.4.8 Math.ceil(value) : 对一个数向上取整,并不是四舍五入 参数:

①value {Number | NumberStr} :数字或者纯数字的字符串。

返回值:

{Number} 返回取整后的值。若参数不为数字,返回NaN。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="74494" class="copybut" id="copybut74494" onclick="doCopy('code74494')"> 代码如下:

<div class="codebody" id="code74494">
Math.ceil(2.7); // => 3
Math.ceil(2.3); // => 3 :2.3 向上取整返回 3
Math.ceil(-2.7); // => -2
Math.ceil(-2.3); // => -2
Math.ceil('2.7'); // => 3 :纯数字字符串
Math.ceil('2.7a'); // => NaN :非纯数字字符串

1.4.9 Math.floor(value) :对一个数向下取整,并不是四舍五入
参数:

①value {Number | NumberStr} :数字或者纯数字的字符串。

返回值:

{Number} 返回取整后的值。若参数不为数字,返回NaN。

示例:

代码如下:
2 Math.floor(2.3); // => 2 Math.floor(-2.7); // => -3 :-2.7 向下取整返回 -3 Math.floor(-2.3); // => -3 Math.floor('2.7'); // => 2 :纯数字字符串 Math.floor('2.7a'); // => NaN :非纯数字字符串

1.4.10 Math.max(value1,value2...valueN) :返回参数中最大的值
参数:

①value1,value2.....valueN {Number | NumberStr} :数字或者纯数字的字符串。

返回值:

{Number} 返回最大值。若一个参数不为数字,返回NaN。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="91988" class="copybut" id="copybut91988" onclick="doCopy('code91988')"> 代码如下:

<div class="codebody" id="code91988">
Math.max(1,2,3,4,5); // => 5
Math.max(1,'5' ); // => 5
Math.max(1,'a'); // => NaN

  

1.4.11 Math.min(value1,value2...valueN) :返回参数中最小的值
参数:

①value1,value2.....valueN {Number | NumberStr} :数字或者纯数字的字符串。

返回值:

{Number} 返回最大值。若一个参数不为数字,返回NaN。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="73426" class="copybut" id="copybut73426" onclick="doCopy('code73426')"> 代码如下:

<div class="codebody" id="code73426">
Math.min(1,5); // => 1
Math.min('1',5); // => 1
Math.min(1,'a'); // => NaN

1.4.12 Math.pow(x,y) :返回x的y次方
参数:

①x {Number | NumberStr} :数字或者纯数字的字符串。

②y {Number | NumberStr} :数字或者纯数字的字符串。

返回值:

{Number} 返回x的y次方。若一个参数不为数字,返回NaN。

示例:

代码如下:
8 :2的3次方 Math.pow(3,2); // => 9 :3的2次方 Math.pow('4',2); // => 16 :4的2次方 Math.pow('2a',2); // => NaN

1.4.13 Math.random() :返回一个伪随机数,大于0,小于1.0
参数:无

返回值:

{Number} 返回一个伪随机数,大于0,小于1.0

示例:

代码如下:
0.8982374747283757 Math.random(); // => 0.39617531932890415 Math.random(); // => 0.35413061641156673 Math.random(); // => 0.054441051790490746

1.4.14 Math.round(value) : 四舍五入后取整
参数:

①value {Number | NumberStr} :数字或者纯数字的字符串。

返回值:

{Integer} 返回参数四舍五入后的整数。若参数不为数字,返回NaN。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="2265" class="copybut" id="copybut2265" onclick="doCopy('code2265')"> 代码如下:

<div class="codebody" id="code2265">
Math.round(2.5); // => 3
Math.round(2.4); // => 2
Math.round(-2.6); // => -3
Math.round(-2.5); // => -2 :-2.5四舍五入为 -2
Math.round(-2.4); // => -2
Math.round('2.7'); // => 3 :纯数字字符串
Math.round('2.7a'); // => NaN :非纯数字字符串

1.4.15 Math.sqrt(value) :返回参数的平方根
参数:

①value {Number | NumberStr} :数字或者纯数字的字符串

返回值:

{Number} 返回参数的平方根

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="69153" class="copybut" id="copybut69153" onclick="doCopy('code69153')"> 代码如下:<div class="codebody" id="code69153">
console.log( Math.sqrt(9) ); // => 3
console.log( Math.sqrt(16) ); // => 4
console.log( Math.sqrt('25') ); // => 5
console.log( Math.sqrt('a') ); // => NaN

2. Number 对象

2.1 介绍

  Number 对象,是数字对象,包含js中的整数、浮点数等等。

2.2 定义

<div class="codetitle"><a style="CURSOR: pointer" data="68489" class="copybut" id="copybut68489" onclick="doCopy('code68489')"> 代码如下:<div class="codebody" id="code68489">
var a = 1;
var b = 1.1;

2.3 静态属性

2.3.1 Number.MAX_VALUE :表示JS中最大的数字,约为 1.79e+308

2.3.2 Number.MIN_VALUE :表示JS中最小的数字,约为 5e-324

2.3.3 Number.NaN :返回NaN,表示非数字值,与任意其他数字不等,也包括NaN本身。应使用Number.isNaN() 来进行判断。

2.3.4 Number.NEGATIVE_INFINITY :返回 -Infinity ,表示负无穷。

2.3.5 Number.POSITIVE_INFINITY :返回 Infinity ,表示正无穷。进行计算的值大于Number.MAX_VALUE就返回 Infinity 。

2.4 静态方法

2.4.1 Number.isInteger(value) :判断参数是否为整数
参数:

①value {Number} :数字

返回值:

{Boolean} 返回参数是否为整数 。纯整数的字符串也返回false。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="43922" class="copybut" id="copybut43922" onclick="doCopy('code43922')"> 代码如下:<div class="codebody" id="code43922">
Number.isInteger(1); // => true
Number.isInteger(1.1); // => false
Number.isInteger('1'); // => false :纯整数的字符串也返回false
Number.isInteger('1.1'); // => false
Number.isInteger('a'); // => false :非字符串返回false

2.4.2 Number.isNaN(value) :判断参数是否为NaN
参数:

①value {Object} :任意类型

返回值:

{Boolean} 返回参数是否为NaN 。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="17623" class="copybut" id="copybut17623" onclick="doCopy('code17623')"> 代码如下:<div class="codebody" id="code17623">
Number.isNaN(NaN); // => true
Number.isNaN('NaN'); // => false :'NaN'字符串,并不为NaN
Number.isNaN(1); // => false
Number.isNaN('1'); // => false

2.4.3 Number.parseFloat(value) :把参数转换为浮点数
参数:

①value {Number | NumberStr} :数字或者纯数字的字符串

返回值:

{Integer | Float} 返回整数或浮点数数值

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="69962" class="copybut" id="copybut69962" onclick="doCopy('code69962')"> 代码如下:<div class="codebody" id="code69962">
Number.parseFloat(1); // => 1 :整数还是返回整数
Number.parseFloat(1.1); // => 1.1
Number.parseFloat('1aaa'); // => 1 :字符串前面为数字的,只返回数字
Number.parseFloat('1.1aaa'); // => 1.1
Number.parseFloat('a1'); // => NaN :非数字开头,返回NaN
Number.parseFloat('a'); // => NaN

2.4.4 Number.parseInt(value) :把参数转换为整数
参数:

①value {Number | NumberStr} :数字或者纯数字的字符串

返回值:

{Integer} 返回整数数值

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="12946" class="copybut" id="copybut12946" onclick="doCopy('code12946')"> 代码如下:<div class="codebody" id="code12946">
Number.parseInt(1); // => 1
Number.parseInt(1.1); // => 1 :浮点数返回整数
Number.parseInt('1aaa'); // => 1 :字符串前面为数字的,只返回数字
Number.parseInt('1.1aaa'); // => 1
Number.parseInt('a1'); // => NaN :非数字开头,返回NaN
Number.parseInt('a'); // => NaN

2.5 实例方法

2.5.1 toExponential(value) :将一个数字转为指数类型,参数表示小数点后的位数 参数:

①value {Number} :表示小数点后的位数

返回值:

{String} 返回转换后的指数类型字符串

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="37109" class="copybut" id="copybut37109" onclick="doCopy('code37109')"> 代码如下:<div class="codebody" id="code37109">
(123456789).toExponential(2); // => 1.23e+8 :小数点2位
(123456789).toExponential(5); // => 1.23457e+8 :小数点5位
(123456789).toExponential(10); // => 1.2345678900e+8 :小数点10位,不足位数用0补位

2.5.2 toFixed(value) :将一个数字转换为指定小数位数的字符串。不传入参数,就是没小数位。返回值为四舍五入
参数:

①value {Number} :表示小数点后的位数

返回值:

{String} 返回转换后的字符串;不够小数位以0填充;返回值为四舍五入后的值

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="64621" class="copybut" id="copybut64621" onclick="doCopy('code64621')"> 代码如下:<div class="codebody" id="code64621">
console.log((1).toFixed(2)); // => 1.00
console.log((1.2).toFixed(2)); // => 1.20 :不足位数,以0补位
console.log((1.277).toFixed(2)); // => 1.28 :进行了四舍五入

2.5.3 toString() :使用指定的进制,将一个数字转换为字符串。不传入参数,默认为十进制。
参数:

①value {Number} :表示进制数,取值范围:2到36

返回值:

{String} 转换后进制的字符串

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="28968" class="copybut" id="copybut28968" onclick="doCopy('code28968')"> 代码如下:<div class="codebody" id="code28968">
(10).toString(); // => 10 :默认为十进制
(10).toString(2); // => 1010 :二进制
(10).toString(10); // => 10 :十进制
(10).toString(16); // => a :十六进制

2.6 应用场景

2.6.1 浮点数的加减乘除异常 说明:Js中的2个浮点数进行加减乘除运算,会返回异常的数值,如:0.2+0.7,返回0.899999999999。可以使用toFixed()方法,指定小数位。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="62485" class="copybut" id="copybut62485" onclick="doCopy('code62485')"> 代码如下:<div class="codebody" id="code62485">
console.log(0.2 + 0.7); // => 0.8999999999999999
console.log(0.7 - 0.5); // => 0.19999999999999996
console.log(3.03 10); // => 30.299999999999997
// 使用toFixed()方法
console.log( (0.2 + 0.7).toFixed(2) ); // => 0.90
console.log( (0.7 - 0.5).toFixed(2) ); // => 0.20
console.log( (3.03
10).toFixed(2) ); // => 30.30

2.6.2 减法运算
说明:Js中进行减法运算时,会先把前后的值转换为数值再进行运算。若转换失败,返回NaN。

示例:

<div class="codetitle"><a style="CURSOR: pointer" data="35377" class="copybut" id="copybut35377" onclick="doCopy('code35377')"> 代码如下:<div class="codebody" id="code35377">
console.log('1' - 0); // => 1 :纯数字字符串减去0,可以快速转换为Nubmer对象
console.log( ('1' - 0).toFixed(2) ); // => 1.00 :快速转换为Nubmer对象后调用实例方法
console.log('1' - 'a'); // => NaN :一方无法转换为Nubmer对象

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

JavaScriptMathNumber

相关推荐


阅读本文之前,分享大家一张图片,看图会发现JavaScript开发需求最高,占比达到42.84%,因此掌握JavaScript语言好工作就不愁啦,工欲善其事必先利其器,那么选择IDE来开发是至关重要的,本文指出常用的几款JavaScript IDE,分析其优缺点,如有不完善的请大家补充
Promises是一种关于异步编程的规范,目的是将异步处理对象和处理规则进行规范化,为异步编程提供统一接口。本文简要的介绍了Promises的基础知识,希望我们我们能够更好的使用Promises,更轻松的编写代码。
引子 Patrick Catanzariti 是一名Web开发工程师,最近他在 sitepoint 发表了《JavaScript Beyond the Web in 2014》,介绍了JavaScript在物联网中的应用,非常有意思。做为JavaScript的爱好者和从业者,我在这里把它翻译了,以飨
小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式。 目录: 众所周知,JavaScript是动态的面向对象的编程语言,能够实现以下效果: 1. 丰富Web 网页功能 2. 丰富Web界面
微软于今日(2015年12月10日)宣布即将开源Chakra核心控件,并改名为“ChakraCore”,该控件包含所有Edge JavaScript 引擎的所有核心功能。ChakraCore 将于下月发布在GitHub中。 Chakra提供了顶级的JavaScript处理功能,并具有非常强大的性能优
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。本文会向大家介绍这些错误发生的原因以及如何防止。
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 JavaScript 之间又有什么样的区别呢?在选择开发语言时,又该如何抉择呢?
本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况。
本文来源于多年的 JavaScript 编码技术经验,适合所有正在使用 JavaScript 编程的开发人员阅读。本文的目的在于帮助大家更加熟练的运用 JavaScript 语言来进行开发工作。
对于前端开发人员来说,如果能够掌握交互式网页中的数据可视化技术,则是一项很棒的技能。当然,通过一些 JavaScript 的图表库也会使前端的数据可视化变得更加容易。
几乎每隔一个星期,就有一个新的 JavaScript 库席卷网络社区!Web 社区日益活跃、多样,并在多个领域快速成长。想要研究每一个重要的 JavaScript 框架和库,是个不可能完成的任务。接下来,我会分享一些前端开发的最著名和最有影响力的框架和库。下面,就让我们一起来看看,顶级的 JavaS
AngularJ.js 由google开发,2009年首次发布 很流行的前端框架 使用Angular.js创建第一个UI,成本很低 对于团队来说,AngularJ.js有许多很棒的工具可用 很适合创建一个快速、混合型复杂的解决方案 比起React,更合适于创建小型企业级应用 由Google负责维护基
Javascript框架(以下简称框架)也被称为Javascript库,是一组包含丰富功能和函数的JavaScript代码集,能够帮助开发者快速完成Web设计和开发工作。随着Web社区的越发活跃,新的框架也层出不穷,目前流行的有:Angular、React、Vue.js和Knockout等。 面对如
对于 JavaScript 社区来说,npm 的主要功能之一就是帮助开发者发掘所需的 npm Registry 中的库和框架。npm 强大的搜索功能能够帮助找到一组相关的软件包,同时其内置的的文档和使用统计信息,可以帮助开发者决定使用哪一种软件包。
前言 SpreadJS作为一款性能出众的纯前端电子表格控件,自2015年发布以来,已经被广泛应用于各领域“在线Excel”数据管理项目中。NPM,作为管理Node.js库最有力的手段,解决了很多NodeJS代码部署的问题。 如今,为让您更方便的使用产品和更好地管理项目中的SpreadJS代码,我们已
前一篇文章中,我们介绍了2017年 JavaScript 框架的整体情况。我们也了解到在众多的前端框架中,目前最为庞大又在快速增长的当属React了,本文就来重点介绍React的生态系统。
ES2017标准已经于2017年6月份正式定稿了,并广泛支持最新的特性:异步函数。如果你曾经被异步JavaScript的逻辑困扰,这么新函数正是为你设计的。
本文将会讨论10个优秀的支持JavaScript,HTML5和CSS开发,并且可以使用Markdown进行文档编写的文本编辑器。
随着现在的编程语言功能越来越成熟、复杂,内存管理也容易被大家忽略。本文将会讨论JavaScript中的内存泄漏以及如何处理,方便大家在使用JavaScript编码时,更好的应对内存泄漏带来的问题。
JavaScript 作为当前最为常见的直译式脚本语言,已经广泛应用于 Web 应用开发中。为了提高Web应用的性能,从 JavaScript 的性能优化方向入手,会是一个很好的选择。本文从加载、上下文、解析、编译、执行和捆绑等多个方面来讲解 JavaScript 的性能优化技巧,以便让更多的前端开