ES6 Nunber类型、Math对象扩展

二进制和八进制表示法

ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。

0b111110111 === 503 // true
0o767 === 503 // true

// 非严格模式
(function(){
  console.log(0o11 === 011);
})() // true

// 严格模式
(function(){
  'use strict';
  console.log(0o11 === 011);
})() /

Number.isFinite(), Number.isNaN()

ES6 在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法。Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity

Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false
Number.isFinite(true); // false

Number.parseInt(), Number.parseFloat()

  • ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。
// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45

// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 1

Number.isInteger()

Number.isInteger()用来判断一个数值是否为整数。

Number.isInteger(25) // true
Number.isInteger(25.1) // false

Math 对象的扩展

  • Math.trunc
  • Math.sign()
  • Math.cbrt()

Math.trunc方法用于去除一个数的小数部分,返回整数部分。

Math.trunc(4.1) // 4
Math.trunc(4.9) // 4
Math.trunc(-4.1) // -4
Math.trunc(-4.9) // -4
Math.trunc(-0.1234) // -0
Math.trunc('123.456') // 123
Math.trunc(true) //1
Math.trunc(false) // 0
Math.trunc(null) // 0

Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值

  • 参数为正数,返回+1;
  • 参数为负数,返回-1;
  • 参数为 0,返回0;
  • 参数为-0,返回-0;
  • 其他值,返回NaN
Math.sign(-5) // -1
Math.sign(5) // +1
Math.sign(0) // +0
Math.sign(-0) // -0
Math.sign(NaN) // NaN

数组

数组合并

const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];

// ES5 的合并数组
arr1.concat(arr2, arr3);
// [ 'a', 'b', 'c', 'd', 'e' ]

// ES6 的合并数组
[...arr1, ...arr2, ...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]

// ES6 的写法
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);

Array.from()

Array.from()方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。

下面是一个类似数组的对象,Array.from()将它转为真正的数组。

let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};

// ES5 的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']

// ES6 的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

相关推荐

  1. ES6 Nunber类型Math对象扩展

    2024-03-14 15:14:01       38 阅读
  2. 【07】ES6对象扩展

    2024-03-14 15:14:01       40 阅读
  3. ES6对象新增了哪些扩展

    2024-03-14 15:14:01       58 阅读
  4. ES6 对象扩展(十五)

    2024-03-14 15:14:01       28 阅读
  5. ES6简化对象

    2024-03-14 15:14:01       49 阅读
  6. ES6---扩展运算符详解

    2024-03-14 15:14:01       48 阅读
  7. ES6 类的扩展

    2024-03-14 15:14:01       42 阅读
  8. ES6—运算符的扩展

    2024-03-14 15:14:01       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 15:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 15:14:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 15:14:01       82 阅读
  4. Python语言-面向对象

    2024-03-14 15:14:01       91 阅读

热门阅读

  1. IOS面试题object-c 81-90

    2024-03-14 15:14:01       42 阅读
  2. mysql数据库备份恢复

    2024-03-14 15:14:01       37 阅读
  3. Python: for,while循环语句

    2024-03-14 15:14:01       51 阅读
  4. JDK、JRE和JVM的区别

    2024-03-14 15:14:01       38 阅读
  5. 后端各种格式传参混合vue前端传参

    2024-03-14 15:14:01       44 阅读
  6. FFmpeg--packet数据包和frame数据帧的区别

    2024-03-14 15:14:01       34 阅读
  7. STM32单片机实现串口通信

    2024-03-14 15:14:01       32 阅读
  8. git--协同开发

    2024-03-14 15:14:01       44 阅读
  9. 医药电商大数据实践

    2024-03-14 15:14:01       39 阅读