浅谈JavaScript Math和Number对象


Posted in Javascript onJanuary 26, 2015

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。
 
示例:

h.abs('123'); // => 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。
 
示例:
 

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。
 
示例:
Math.floor(2.7); // => 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。
 
示例:
 
Math.max(1, 2, 3, 4, 5); // => 5

Math.max(1, 2, 3, 4, '5' ); // => 5

Math.max(1, 2, 3, 4, 'a'); // => NaN

 
1.4.11 Math.min(value1,value2...valueN) :返回参数中最小的值
参数:
 
①value1,value2.....valueN {Number | NumberStr} :数字或者纯数字的字符串。
 
返回值:
 
{Number} 返回最大值。若一个参数不为数字,返回NaN。
 
示例:
 

Math.min(1, 2, 3, 4, 5); // => 1

Math.min('1', 2, 3, 4, 5); // => 1

Math.min(1, 2, 3, 4, 'a'); // => NaN

 
1.4.12 Math.pow(x,y) :返回x的y次方
参数:
 
①x {Number | NumberStr} :数字或者纯数字的字符串。
 
②y {Number | NumberStr} :数字或者纯数字的字符串。
 
返回值:
 
{Number} 返回x的y次方。若一个参数不为数字,返回NaN。
 
示例:
Math.pow(2, 3); // => 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
 
示例:
Math.random(); // => 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。
 
示例:
 
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} 返回参数的平方根
 
示例:
 
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 定义
 

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。
 
示例:
 

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 。
 
示例:
 
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} 返回整数或浮点数数值
 
示例:
 
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} 返回整数数值
 
示例:
 
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} 返回转换后的指数类型字符串
 
示例:
 

(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填充;返回值为四舍五入后的值
 
示例:
 
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} 转换后进制的字符串
 
示例:
 
(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()方法,指定小数位。
 
示例:
 

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。
 
示例:
 
console.log('1' - 0); // => 1 :纯数字字符串减去0,可以快速转换为Nubmer对象

console.log( ('1' - 0).toFixed(2) ); // => 1.00 :快速转换为Nubmer对象后调用实例方法

console.log('1' - 'a'); // => NaN :一方无法转换为Nubmer对象
Javascript 相关文章推荐
jQuery的slideToggle方法实例
May 07 Javascript
基于javascript的COOkie的操作实现只能点一次
Dec 26 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
Sep 20 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
浅谈Angular 观察者模式理解
Nov 01 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
Nov 29 Javascript
详解项目升级到vue-cli3的正确姿势
Jan 28 Javascript
Vue中props的详解
May 16 Javascript
详解element-ui设置下拉选择切换必填和非必填
Jun 17 Javascript
vue el-upload上传文件的示例代码
Dec 21 Vue.js
js判断一个字符串是否包含一个子串的方法
Jan 26 #Javascript
javascript中Object使用详解
Jan 26 #Javascript
JQuery中的事件及动画用法实例
Jan 26 #Javascript
javascript折半查找详解
Jan 26 #Javascript
JavaScript数据类型检测代码分享
Jan 26 #Javascript
浅谈Javascript中的Function与Object
Jan 26 #Javascript
javascript实现动态加载CSS
Jan 26 #Javascript
You might like
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
js获取div高度的代码
2008/08/09 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
python 图像增强算法实现详解
2021/01/24 Python
华润集团网上药店:健一网
2016/09/19 全球购物
C语言面试题
2015/10/30 面试题
银行见习期自我鉴定
2014/01/29 职场文书
项目申请汇报材料
2014/08/16 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
工作年限证明模板
2014/11/01 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
学校节水倡议书
2015/04/29 职场文书
行政处罚告知书
2015/07/01 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
七年级作文之雪景
2019/11/18 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python