Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus
一、进制数新写法
- 二进制表示法新写法: 前缀 0b 或 0B
- 八进制表示法新写法: 前缀 0o 或 0O
// ES6 之前把十进制转为二进制 const a = 5 // 101 console.log(a.toString(2)) // ES6 之前把二进制转化为十进制 const b = 101 console.log(parseInt(b, 2))//把b当做2进制数看待 // ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 const a = 0B0101 console.log(a) const b = 0O777 console.log(b)
二、Number 新增静态方法
- Number.isFinite() 用于检查一个数值是否为有限的( finite ),即不是 Infinity
- Number.isNaN() 用来检查一个值是否为NaN
console.log( Number.isFinite(1)); // true console.log( Number.isFinite(0.1)); // true // NaN 不是有限的 console.log( Number.isFinite(NaN)); // false console.log( Number.isFinite(Infinity)); // false console.log( Number.isFinite(-Infinity)); // false // Number.isFinate 没有隐式的 Number() 类型转换,所有非数值都返回 false console.log( Number.isFinite('foo')); // false console.log( Number.isFinite('15')); // false console.log( Number.isFinite(true)); // false Number.isNaN() 用于检查一个值是否为 NaN 。 console.log(Number.isNaN(NaN)); // true console.log(Number.isNaN('true'/0)); // true // 在全局的 isNaN() 中,以下皆返回 true,因为在判断前会将非数值向数值转换 // 而 Number.isNaN() 不存在隐式的 Number() 类型转换,非 NaN 全部返回 false Number.isNaN("NaN"); // false Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN("true"); // false
Number.parseInt() 用于将给定字符串转化为指定进制的整数
Number.parseFloat() 用于把一个字符串解析成浮点数
Number.isInteger() 用于判断给定的参数是否为整数。NaN 和正负 Infinity 不是整数
从全局移植到 Number 对象的方法,逐步减少全局方法,利于全局变量的模块化。
三、Math 对象的扩展
Math.cbrt() 方法用于计算一个数的立方根
Math.trunc() 方法用于返回数字的整数部分
Math.trunc(12.3); // 12 Math.trunc(-0.5); // -0 Math.trunc("12.3"); // 12 Math.trunc("123.2hhh"); // NaN
Math.sign() 方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。它会返回五种值:
- 参数为正数,返回+1
- 参数为负数,返回-1
- 参数为 0,返回0
- 参数为-0,返回-0
- 其他值,返回NaN
console.log(Math.sign(5)) // 1 console.log(Math.sign(-5)) // -1 console.log(Math.sign(0)) // 0 console.log(Math.sign(NaN)) // NaN console.log(Math.sign(true)) // 1 console.log(Math.sign(false)) // 0
** 指数运算符:运算顺序从右向左
1 ** 2; // 1 // 右结合,从右至左计算 2 ** 2 ** 3; // 256 // **= let exam = 2; exam ** = 2; // 4