JavaScript 数字相关的转换和方法

时间:2024-05-30 19:04:50

类型判断

isNaN - 是否是 NaN(Not a Number)。主要用来判断 NaN 是否是 NaN,因为 NaN == NaN 是 false。

isNaN(NaN);       // true
isNaN(parseFloat('abc')); // true

isNaN(37);        // false
isNaN("37");      // false
isNaN("37.37");   // false

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

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

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

    isFinite - 是否是有限的数字。

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

类型转化

parseFloat - 字符串转数字。

var number = parseFloat('4.6');
number;// 4.6

parseInt(str [,进制]) - 字符串转整数。

var number = parseInt('4.6', 10);
number;// 4

数字转字符串。

var str = 4.5 + '';
str; // '4.5'

Number 上的常用属性方法

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 上的常用属性方法

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

    Math.ceil(数字) - 如果是小数,返回比参数大最近的整数。

Math.ceil(4.3);// 5
Math.ceil(4.8);// 5
Math.ceil(-4.3);// -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.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 上还有与三级函数,指数,幂相关的函数。