JS Number常用方法

Javascript Number

Number 值表示像 37 或 -9.25 这样的浮点数。Number 构造函数包含常量和处理数值的方法。其他类型的值可以使用 Number() 函数转换为数字。

常用方法

  1. isFinite()
  • 作用:判断是不是一个有限数(该数字既不是正的 Infinity,也不是负的 Infinity 或 NaN。)
  • 语法:Number.isFinite(value) 参数value为要检测的值
  • 返回值:true/false
console.log(Number.isFinite(1 / 0));
// Expected output: false

console.log(Number.isFinite(10 / 5));
// Expected output: true

console.log(Number.isFinite(0 / 0));
// Expected output: false

// 全局isFinite()会强制转为数字,Number.isFinite()不会强制转。
isFinite("0"); // true;强制转换为数字 0
Number.isFinite("0"); // false
isFinite(null); // true;强制转换为数字 0
Number.isFinite(null); // false
  1. Number.isInteger()
  • 作用:判断传入值是否为整数。
  • 语法:Number.isInteger(value) 要测试是否为整数的值。
  • 返回值:true/false
Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false
Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false
  1. isNaN()
  • 作用:判断是否为 NaN。Number.isNaN() 和全局 isNaN() 之间的区别是Number.isNaN() 不会将参数转换为数字,因此非数字总是返回 false。
  • 语法:Number.isNaN(value) value要测试是否为 NaN 的值。
  • 返回值:true/false
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0); // true
Number.isNaN(37); // false
  1. isSafeInteger()
  • 作用:判断是否是一个安全整数。安全整数由 -(253 - 1) 到 253 - 1 的所有整数组成。
  • 语法:Number.isSafeInteger(value) value要测试的值。
  • 返回值:true/false
Number.isSafeInteger(3); // true
Number.isSafeInteger(2 ** 53); // false
Number.isSafeInteger(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
  1. parseFloat()
  • 作用:解析浮点数,与全局函数 parseFloat() 具有相同的功能。
  • 语法:Number.parseFloat(string) string为要解析的值,会强制转为字符串。
  • 返回值:浮点数,若无法解析出一个数字返回NaN。
console.log(Number.parseFloat("3.14QDEDRRVR")) // 3.14
console.log(Number.parseFloat("QDED3.14RRVR")) // NaN
console.log(Number.parseFloat("QDEDRRVR3.14")) // NaN
  1. parseInt()
  • 作用:解析整数,与全局函数 parseInt() 具有相同的功能。
  • 语法:Number.parseInt(string, radix) string要被解析的值。 radix 可选,2 到 36 之间的整数,表示 string 的基数(数学记数系统中的基)。如果 radix 为 undefined 或 0,则 radix 将被默认设置为 10,除非该数字以码元对 0x 或 0X 开头,在这种情况下,radix 将被默认设置为 16。
  • 返回值:整数,若无法解析出一个数字返回NaN。
console.log(Number.parseFloat("3.14QDEDRRVR")) // 3
console.log(Number.parseFloat("QDED3.14RRVR")) // NaN
console.log(Number.parseFloat("QDEDRRVR3.14")) // NaN

function roughScale(x, base) {
  const parsed = Number.parseInt(x, base);
  if (Number.isNaN(parsed)) {
    return 0;
  }
  return parsed * 100;
}

console.log(roughScale(' 0xF', 16));
// Expected output: 1500

console.log(roughScale('321', 2));
// Expected output: 0
  1. toExponential()
  • 作用:指数表示法
  • 语法:toExponential(fractionDigits) fractionDigits可选,一个整数,用来指定小数点后有几位数字。默认设置为完整表示该数字所需要的数字。
  • 返回值:指数字符串
function expo(x, f) {
  return Number.parseFloat(x).toExponential(f);
}

console.log(expo(123456, 2));
// Expected output: "1.23e+5"

console.log(expo('123456'));
// Expected output: "1.23456e+5"

console.log(expo('oink'));
// Expected output: "NaN"
  1. toFixed()
  • 作用:小数位数格式化。如果需要截断,则将数字四舍五入;如果小数位数不足,则小数部分用零填充
  • 语法:toFixed(digits) digits可选,小数点后的位数。应该是一个介于 0 和 100 之间的值,包括 0 和 100。如果这个参数被省略,则被视为 0。
  • 返回值:指定小数位数的字符串
const numObj = 12345.6789;

numObj.toFixed(); // '12346';四舍五入,没有小数部分
numObj.toFixed(1); // '12345.7';向上舍入
numObj.toFixed(6); // '12345.678900';用零补足位数
-2.34.toFixed(1); // -2.3,数字 由于toFixed优先级高于减号,需要将负数表达式组合则会返回字符串
(-2.34).toFixed(1); // '-2.3'
  1. toPrecision()
  • 作用:以指定精度表示数字的字符串。
  • 语法:toPrecision(precision) precision可选,指定有效位数的整数。
  • 返回值:以定点表示法或指数表示法表示 Number 对象的字符串,如果 precision 参数被省略,则与 Number.prototype.toString() 行为相同。
function precise(x) {
  return x.toPrecision(4);
}

console.log(precise(123.456));
// Expected output: "123.5"

console.log(precise(0.004));
// Expected output: "0.004000"

console.log(precise(1.23e5));
// Expected output: "1.230e+5"
  1. toString()
  • 作用:数字转为字符串。
  • 语法:toString(radix) radix可选,一个整数,范围在 2 到 36 之间,用于指定表示数字值的基数。默认为 10。
  • 返回值:指定数字值的字符串。
const count = 10;
console.log(count.toString()); // "10"

console.log((17).toString()); // "17"
console.log((17.2).toString()); // "17.2"

const x = 6;
console.log(x.toString(2)); // "110"
console.log((254).toString(16)); // "fe"
console.log((-10).toString(2)); // "-1010"
console.log((-0xff).toString(2)); // "-11111111"
  1. valueOf()
  • 作用:获取数字的值,该方法通常由 JavaScript 在内部调用,而非在 Web 代码中显式调用。
  • 语法:valueOf()
  • 返回值:表示指定 Number 对象的原始值的数字。
const numObj = new Number(42);
console.log(typeof numObj);
// Expected output: "object"

const num = numObj.valueOf();
console.log(num);
// Expected output: 42

console.log(typeof num);
// Expected output: "number"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值