【ES6】数值相关拓展

简介: 【ES6】数值相关拓展

数字化管理平台

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
相关文章
|
2月前
|
自然语言处理 JavaScript 前端开发
ES6 函数及拓展
ES6 函数及拓展
108 58
|
6月前
|
JavaScript 前端开发 API
ES6学习笔记--字符串与数值的拓展
ES6学习笔记--字符串与数值的拓展
|
6月前
|
Serverless 网络架构
ES6学习笔记--函数与数组的拓展
ES6学习笔记--函数与数组的拓展
|
6月前
|
存储 安全 JavaScript
ES6学习之数值
ES6学习之数值
|
JavaScript 前端开发 安全
ES6(数值的扩展)
ES6(数值的扩展)
65 0
|
11月前
|
网络架构
ES6学习(五)—数组的扩展
ES6学习(五)—数组的扩展
ES6: 字符串与数值拓展
ES6: 字符串与数值拓展
47 0
|
JavaScript 前端开发 索引
【ES6】数组新增拓展
【ES6】数组新增拓展
80 0
【ES6】字符串新增拓展
【ES6】字符串新增拓展
73 0