欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于Number的属性和方法你知晓几分?速来围观!

程序员文章站 2022-05-10 13:16:13
1、Number.isFinite() 方法用来检测传入的参数是否是一个有穷数(finite number)返回值为布尔值。 和全局的 isFinite() 函数相比,这个方法不会强制将一个非数值的参数转换成数值,这就意味着,只有数值类型的值,且是有穷的(finite),才返回 true。 2、Nu ......

1、number.isfinite() 方法用来检测传入的参数是否是一个有穷数(finite number)返回值为布尔值。

  和全局的 isfinite() 函数相比,这个方法不会强制将一个非数值的参数转换成数值,这就意味着,只有数值类型的值,且是有穷的(finite),才返回 true

number.isfinite(infinity);  // false
number.isfinite(nan);       // false
number.isfinite(-infinity); // false

number.isfinite(0);         // true
number.isfinite(2e64);      // true

number.isfinite('0');       // false, 全局函数 isfinite('0') 会返回 true

2、number.isinteger() 方法用来判断给定的参数是否为整数。返回值为布尔值。

function fits(x, y) {
  if (number.isinteger(y / x)) {
    return 'fits!';
  }
  return 'does not fit!';
}

console.log(fits(5, 10));
// expected output: "fits!"

console.log(fits(5, 11));
// expected output: "does not fit!"

3、number.isnan() 方法确定传递的值是否为 nan和其类型是 number。它是原始的全局isnan()的更强大的版本。

function typeofnan(x) {
  if (number.isnan(x)) {
    return 'number nan';
  }
  if (isnan(x)) {
    return 'nan';
  }
}

console.log(typeofnan('100f'));
// expected output: "nan"

console.log(typeofnan(nan));
// expected output: "number nan"

4、number.issafeinteger() 方法用来判断传入的参数值是否是一个“安全整数”(safe integer)。一个安全整数是一个符合下面条件的整数:

  比如,253 - 1 是一个安全整数,它能被精确表示,在任何 ieee-754 舍入模式(rounding mode)下,没有其他整数舍入结果为该整数。作为对比,253 就不是一个安全整数,

  它能够使用 ieee-754 表示,但是 253 + 1 不能使  用 ieee-754 直接表示,在就近舍入(round-to-nearest)和向零舍入中,会被舍入为 253

  安全整数范围为 -(253 - 1)到 253 - 1 之间的整数,包含 -(253 - 1)和 253 - 1

number.issafeinteger(3);                    // true
number.issafeinteger(math.pow(2, 53))       // false
number.issafeinteger(math.pow(2, 53) - 1)   // true
number.issafeinteger(nan);                  // false
number.issafeinteger(infinity);             // false
number.issafeinteger("3");                  // false
number.issafeinteger(3.1);                  // false
number.issafeinteger(3.0);                  // true

5、number.parsefloat() 方法可以把一个字符串解析成浮点数。该方法与全局的 parsefloat() 函数相同,并且处于 ecmascript 6 规范中(用于全局变量的模块化)。

function circumference(r) {
  return parsefloat(r) * 2.0 * math.pi;
}

console.log(circumference(4.567));
// expected output: 28.695307297889173

console.log(circumference('4.567abcdefgh'));
// expected output: 28.695307297889173

console.log(circumference('abcdefgh'));
// expected output: nan

6、number.parseint() 方法可以根据给定的进制数把一个字符串解析成整数。

语法:number.parseint(string[, radix])

// radix为指定基数,说明字符串为多少进制的数字表示。

let strobj = '0110';

console.log(number.parseint(strobj, 2)); // 6

console.log(number.parseint(strobj, 10)); // 110

7、tofixed() 方法使用定点表示法来格式化一个数。

  语法:numobj.tofixed(digits)

  参数digits:小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。

function financial(x) {
  return number.parsefloat(x).tofixed(2);
}

console.log(financial(123.456));
// expected output: "123.46"

console.log(financial(0.004));
// expected output: "0.00"

console.log(financial('1.23e+5'));
// expected output: "123000.00"