您好,欢迎访问一九零五行业门户网

浅谈JavaScript Math和Number对象_javascript技巧

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对象
其它类似信息

推荐信息