共计 4034 个字符,预计需要花费 11 分钟才能阅读完成。
前言
Number 和 Math 都属于 JavaScript 中的内置对象,Number 数字类型作为根底数据类型,咱们在开发过程中会常常用到,包含数字精度的格式化,还有字符串转换成数字等操作。
Number 数字
自带属性值
Number.EPSILON 两个可示意 (representable) 数之间的最小距离。Number.MAX_SAFE_INTEGER JavaScript 中最大的平安整数 (2^53 - 1)。Number.MAX_VALUE 能示意的最大负数。最小的正数是 -MAX_VALUE。Number.MIN_SAFE_INTEGER JavaScript 中最小的平安整数 (-(2^53 - 1)).
Number.MIN_VALUE 能示意的最小负数即最靠近 0 的负数 (实际上不会变成 0)。最大的正数是 -MIN_VALUE。Number.NaN 非凡的“非数字”值。Number.NEGATIVE_INFINITY 非凡的负无穷大值,在溢出时返回该值。Number.POSITIVE_INFINITY 非凡的正无穷大值,在溢出时返回该值。
根底应用
new Number 实例化数字对象和 Number 强转数字字符串,两个值的并不相等
var value1 = new Number("123");
this.value1 = value1;
console.log(`value1 === 123 is ${value1 === 123}`); // value1 === 123 is false
var value2 = Number("123");
this.value2 = value2;
console.log(`value2 === 123 is ${value2 === 123}`); // value2 === 123 is true
// 判断 Number 类型
console.log(value1 instanceof Number);
console.log(value2 instanceof Number);
Number 将转换字符串为数字
Number("123"); // 123
Number("12.3"); // 12.3
Number("12.00"); // 12
Number("123e-1"); // 12.3
Number(""); // 0
Number(null); // 0
Number("0x11"); // 17
Number("0b11"); // 3
Number("0o11"); // 9
Number("foo"); // NaN
Number("100a"); // NaN
Number("-Infinity"); //-Infinity
Number 判断数字是否是 NAN
let number1 = new Number("123");
let number2 = 123;
let number3 = "string";
let number4 = null;
console.log(Number.isNaN(number1)); // false
console.log(Number.isNaN(number2)); // false
console.log(Number.isNaN(number3)); // false
console.log(Number.isNaN(number4)); // false
console.log(Number.isNaN(NaN)); // true
Number.isFinite 是否是一个有穷数
console.log(Number.isFinite(1 / 0));
// false
console.log(Number.isFinite(10 / 5));
// true
console.log(Number.isFinite(0 / 0));
// false
Number.isInteger 判断给定的参数是否为整数
function checkInteger(x, y) {if (Number.isInteger(y / x)) {return "整数";}
return "非整数";
}
console.log(checkInteger(5, 10));
// "整数"
console.log(checkInteger(5, 11));
// "非整数"
Number.isSafeInteger 判断传入的参数值是否是一个“平安整数”(safe integer)
备注:
Number.isSafeInteger() 办法用来判断传入的参数值是否是一个“平安整数”(safe integer)。
一个平安整数是一个合乎上面条件的整数:
能够精确地示意为一个 IEEE-754 双精度数字,
其 IEEE-754 示意不能是舍入任何其余整数以适应 IEEE-754 示意的后果。.
比方,2^53 – 1 是一个平安整数,它能被准确示意,在任何 IEEE-754 舍入模式(rounding mode)下,没有其余整数舍入后果为该整数。作为比照,2^53 就不是一个平安整数,它 * 可能应用 IEEE-754 示意,然而 2^53 + 1 不能应用 IEEE-754 间接示意,在就近舍入(round-to-nearest)和向零舍入中,会被舍入为 2^53。
平安整数范畴为 -(2^53 – 1)到 2^53 – 1 之间的整数,蕴含 -(2^53 – 1)和 2^53 – 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
Number.parseFloat 将字符串数字转成数字类型
备注:
- 办法能够把一个字符串解析成浮点数。该办法与全局的 parseFloat() 函数雷同,并且处于 ECMAScript 6 标准中(用于全局变量的模块化)。
- 给定值被解析成浮点数,如果无奈被解析成浮点数,则返回 NaN
function checkFloat(r) {return parseFloat(r);
}
console.log(checkFloat(4.567));
// 4.567
console.log(checkFloat("4.567abcdefgh"));
// 4.567
console.log(checkFloat("abcdefgh"));
// NaN
Number.parseInt 将数字字符串转成整数
/**
*
* Number.parseInt()
* 办法根据指定基数 [参数 radix 的值],把字符串 [参数 string 的值] 解析成整数。* @params string:要解析的值。如果此参数不是字符串,则应用 ToString 形象操作将其转换为字符串。疏忽此参数中的前导空格。* @params radix:一个介于 2 到 36 之间的整数,代表字符串的基数(数学数字零碎中的基)。小心 - 这并不是默认为 10。* 从给定字符串中解析的整数。如果基数小于 11,且第一个非空白字符不能转换为数字,则返回 NaN。*
* */
function checkInt(x, base) {const parsed = parseInt(x, base);
if (isNaN(parsed)) {return 0;}
return parsed * 100;
}
console.log(checkInt("0xF", 16));
// 1500
console.log(checkInt("321", 2));
// 0
Number.prototype.toFixed() 把数字转换为字符串,返回小数点后有指定位数的数字
var numObj = 5.123456;
var n = numObj.toFixed(2); // 5.12
Number.prototype.toPrecision() 以指定的精度返回该数值对象的字符串示意
var numObj = 5.123456;
console.log("numObj.toPrecision() is" + numObj.toPrecision()); // 输入 5.123456
console.log("numObj.toPrecision(5) is" + numObj.toPrecision(5)); // 输入 5.1235
console.log("numObj.toPrecision(2) is" + numObj.toPrecision(2)); // 输入 5.1
console.log("numObj.toPrecision(1) is" + numObj.toPrecision(1)); // 输入 5
// 留神:在某些状况下会以指数表示法返回
console.log((1234.5).toPrecision(2)); // "1.2e+3"
Number 转换 Date 对象
var d = new Date("December 17, 1995 03:24:00");
console.log(Number(d));
结尾
在 Number 数字类型中,应用最多的应该是:
- isNaN 判断数字是否是非数字 NAN
- parseFloat 将数字字符串转成数字类型
- parseInt 解析字符串转成整数
- toPrecision 作为数字的办法,返回该数值的指定精度,蕴含小数位
- toFixed 返回指定小数点精度的数字,须要留神和 toPrecision 辨别开来
源码地址
-
码云 https://gitee.com/lewyon/vue-note
-
githup https://github.com/akari16/vue-note
文章集体博客地址:javaScript 中 Number 数字类型根本办法入门
欢送关注公众号:程序猿布欧,不定期更新一些前端入门文章
创作不易,转载请注明出处和作者。
正文完
发表至: javascript
2022-04-28