关于Number的属性和方法你知晓几分?速来围观!
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"
上一篇: 面对被肢解的项羽,刘邦为什么会哭?