JavaScript 数字相关的属性方法/Math内置对象

JS语言中Number类型的属性和方法

1、类型判断

原理:判断是否是非数,使用isNaN();方法,主要用来判断是否是NaN,因为NaN == NaN是返回false的。非数返回true,不是非数则返回true。

注意点:内部会进行隐式转换

代码举例:注意一下的为true的结果

isNaN(NaN);       // true
isNaN(parseFloat('abc')); // true,非数

isNaN(37);        // false
isNaN("37");      // false,内部隐式转化了

isNaN("asd");     // true,

isNaN("");        // false: 会被转化转化成0
isNaN(" ");       // false: 会被转化转化成0

isNaN(undefined); // true
isNaN({});        // true

isNaN(null);      // false
isNaN(true);      // false
isNaN(null);      // false

2、是否有限数字

原理:判断是否是有限的,有限返回true。

注意点:内部会进行隐式转换

代码举例:注意一下的为true的结果

isFinite(Infinity);  // false,无限大
isFinite(NaN);       // false
isFinite(-Infinity); // false,负无限大
isFinite(2/0);       // false:2/0 的结果是 Infinity
isFinite(0);         // true
isFinite(2e64);      // true
isFinite(null);      // true

3、类型转换

1、字符串转浮点数字

parseFloat('4.6');// 4.6

2、字符串转整形,也可以拿来做进制转换,字符串转数字,默认转为10进制,与之对应的方法是toString方法,转为某一进制。

//后边的位数可以使 2 到 32 ,如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
//其实默认的时候是转为10进制,注意前面的string必须合法,后边表示的是进制
parseInt('4.6', 10);      //返回 4
parseInt("10");           //返回 10
parseInt("19",10);        //返回 19 (10+9)
parseInt("11",2);         //返回 3 (2+1)
parseInt("17",8);         //返回 15 (8+7)
parseInt("1f",16);        //返回 31 (16+15)
parseInt("010");          //未定:返回 10 或 8

3、进制转换,转为某种进制,结果是一个字符串

// 转换数值到指定的进制,必须是一个Number类型,进制是2~36
Number(12).toString(5); // "22"
Number(1000).toString(2); // "1111101000"

4、数字转字符串,在之前或者之后 +“” 即可

"" + 123;  //"123"
123 + "";  //"123"

4、Number上常用到的属性和方法

JavaScript 数字相关的属性方法/Math内置对象

Number.prototype.toFixed([精度]);//取几位小数。会对取的最后一位数字做四舍五入的操作。注意:返回值类型为字符串。默认是取整
3.1415.toFixed(2);// '3.14'   
3.1455.toFixed(2);// '3.15'
3.1415.toFixed();// '3'

Number.prototype.toPrecision(有效数字);//返回满足有效位数的字符串。会对取的最后一位数字做四舍五入的操作。
3.1415.toPrecision(2);// '3.1'   
3.1544.toPrecision(2);// '3.2'
13.1415.toPrecision(2);// '13'
130.515.toPrecision(2);// 1.3e+2

Number.prototype.toExponential(有效数字);//返回数字的科学计数法的字符串。在上边的基础上转换为科学计数
3.14.toExponential()// '3.14e+0'
1300000000.1415.toExponential(2)// '1.30e+9'

Number.MIN_VALUE - 最小值。小于这个值的会被转换成 0。
Number.MIN_VALUE; // 5e-324
Number.MAX_VALUE - 最大值。大于这个值的会被转换成 Infinity。
Number.MAX_VALUE; // 1.79e+308

Math内置对象的一些方法

JavaScript 数字相关的属性方法/Math内置对象

Math.PI - 圆周率的近似值。
Math.PI; // 3.14159...

Math.ceil(数字) - 如果是小数,返回比参数大最近的整数。
Math.ceil(4.3);// 5
Math.ceil(4.8);// 5
Math.ceil(-4.3);// -4 向上取整,取到-4
Math.ceil(2);// 2

Math.floor(数字) - 如果是小数,返回比参数小最近的整数。
Math.floor(3.5);// 3
Math.floor(-3.5);// -4

Math.round(数字) - 四舍五入。
Math.round(3.5);// 4
Math.round(-3.5);// -3   由此可见,这个并不是简单的逆过来,依据其基本的规则直接取得。
Math.round(-3.6);// -4

Math.round(3.4);// 3
Math.round(-3.4);// -3

Math.random() - 返回 0 到 1 之间的一个随机数。包括 0,不包括1。
Math.random();// 可能是 0.008179764728993177
Math.random();// 可能是 0.493650607066229

Math.abs(数字) - 返回绝对值。
Math.abs(-2); // 2
Math.abs(2); // 2
Math.abs(0); // 0

Math.min(数字1[, 数字2, [, ...] ] - 返回一群数字中的最小值。与其相反的函数为 Math.max。
Math.min(0, 10, 5.4, -3.4); // -3.4
Math.min.apply(null,[0, 10, 5.4, -3.4]); // -3.4 (求数组中的最小值)

Math.pow(x,y); - 求取x的y次方
Math.pow(3,2);//9
Math.pow(3,2.1);//10.04510856630514

Math.sqrt(x); - 求x的平方根
Math.sqrt(50);//7.0710678118654755

new Date().valueOf();//1475333477365

Math 上还有与三级函数,指数,幂相关的函数。