二进制 0B      八进制 0O
Number.isFinite() , Number.isNaN()
Number.parseInt() , Number.parseFloat()
Number.isInteger()
0.1+0.2 === 0.3 ???
Math新增方法
 
十进制 -> 二进制,ES5的做法:
const a = 5; // 101
console.log(a.toString(2));

  

二进制 -> 十进制,ES5的做法:
const b = 101
console.log(parseInt(b, 2));

  

ES6 0B二进制  0O八进制:
const a1 = 0B101
const b1 = 0O777
console.log(a1); // 5
console.log(b1); // 511

  

Infinity表示无限的,所以Number.isFinite()方法判断这个数是否是有限的:
console.log(Number.isFinite(1.33)) // true
console.log(Number.isFinite(5 / 0)) // false
console.log(Number.isFinite(Infinity)) // false
// 如果参数不是数值类型,一律判断为false
console.log(Number.isFinite('a')); // false
console.log(Number.isFinite(true)); // false

  

Number.isNaN()
Number.parseInt()
Number.parseFloat()
原本这些方法是挂载在window对象下面,现在ES6将window下一些方法放到对应模块下,减小window的体量
 
 
Number.isInteger() 判断是否为整数:
console.log(Number.isInteger(5)); // true
console.log(Number.isInteger(5.5)); // false

  

由于js使用的是 IEEE754 双精度标准,所以导致0.1+0.2 !=0.3

 
 
JS的最值:
const max = Math.pow(2, 53)
console.log(max); // 9007199254740992
console.log(max + 1); // 9007199254740992
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991 :max-1
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER)); // true
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1)); //false

  

Math.trunc() 去除小数部分返回整数:
console.log(Math.trunc(5.5)); // 5
console.log(Math.trunc(-5.5)); // -5
console.log(Math.trunc(true)); // 1 console.log(Number.parseInt(5.5)); // 5
console.log(Number.parseInt(-5.5)); // -5
console.log(Number.parseInt(true)); // NaN

  

Math.sign() 判断当前这个数值是正数还是负数还是0:
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
console.log(Math.sign('ABC')); // NaN

  

Math.cbrt() 立方根:
console.log(Math.cbrt(8)); // 2
console.log(Math.cbrt('8')); // NaN

  

 -----------------------------------------------ES7------------------------------------------------------------
幂运算符:**
等同于Math.pow()
console.log(Math.pow(2, 10));
console.log(2 ** 10);

  

ES6-11学习笔记--数值的扩展的更多相关文章

  1. js-ES6学习笔记-数值的扩展

    1.ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 2.如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法. 3.ES6在Number对象 ...

  2. C++11 学习笔记 std::function和bind绑定器

    C++11 学习笔记 std::function和bind绑定器 一.std::function C++中的可调用对象虽然具有比较统一操作形式(除了类成员指针之外,都是后面加括号进行调用),但定义方法 ...

  3. JavaScript学习笔记--ES6学习(五) 数值的扩展

    ES6 对于数值类型 (Number) 进行了一下扩展: 1.对于二进制和八进制提供了新的写法 ES6对于二进制和八进制的数值提供了新的写法,分别用0b (或者0B) 和0o (或者0o) 表示.例如 ...

  4. JavaScript:学习笔记(8)——对象扩展运算符

    JavaScript:学习笔记(8)——扩展运算符 对象的扩展运算符 扩展运算符是三个点(...).用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中. 如上图所示,新建了一个对象a,然后通过扩 ...

  5. ES6学习笔记(二)——字符串扩展

    相信很多人也和我一样,不喜欢这样循规蹈矩的逐条去学习语法,很枯燥乏味.主要是这样学完一遍之后,没过一段时间就忘到九霄云外了.不如实际用到的时候研究它记得牢靠,所以我就整理成笔记,加深记忆的同时便于复习 ...

  6. ES6 - 基础学习(5): 数值扩展

    二进制和八进制数值表示法 ES6提供了二进制和八进制数值的新写法,分别前缀 0b(或0B). 0o(或0O)然后跟上二进制.八进制值即可. 二进制(Binary)表示法新写法:前缀 0b 或 0B. ...

  7. ES6的字符串和数值的扩展

    字符串扩展 对于处理大于两个字节(大于0xffff)的字符,let str =’\u{20bb7}abc’ ES5中的遍历  for(let i=0;i<str.length;i++){ con ...

  8. js-ES6学习笔记-函数的扩展

    1.ES6函数参数的默认值,直接写在参数定义的后面.参数变量是默认声明的,所以不能用let或const再次声明. function Point(x = 0, y = 0) { this.x = x; ...

  9. C++11学习笔记

    C++11 1.long long新类型 2.列表初始化 int t=0; int t={0}; int t(0); int t{0}; 注意:如果我们使用列表初始化有丢失信息的风险,则编译器报错 l ...

随机推荐

  1. .NET WebApi使用Swagger

    1.新建WebApi 项目 2.引用Swagger 包 3.创建项目XML注释文档 在项目App_Start文件夹下的SwaggerConfig.cs类中加入 c.IncludeXmlComments ...

  2. Python 并发编程(上)

    Python 并发编程 参考文献:https://gitee.com/wupeiqi/python_course 并发编程:提升代码执行的效率.原来需要 10 分钟执行,并发处理后可以加快到 1 分钟 ...

  3. java的基本类型和类型转化

    1.八种基本数据类型: byte-short--int --long--float--double--char 2.八种基本类型所占字节空间 一.int 整数的直接量为int: 存储范围为:- -21 ...

  4. quartz框架(十)-QuartzShedulerThread

    QuartzSchedulerThread 本篇博文,博主将介绍QuartzSchedulerThread的相关内容.话不多说,直接进入正题. 什么是QuartzSchedulerThread? 从源 ...

  5. 6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  6. Spring和MyBatis框架整合

    Spring集成MyBatis 使用MyBatis,需要创建MyBatis框架中的某些对象,使用这些对象,就能使用mybatis提供的功能了. 需要有Dao接口的代理对象,例如StudentDao接口 ...

  7. 【Linux】apt软件管理和远程登录

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 1. apt 介绍 apt 是 Advanced Packaging Tool 的简称,是一款安装包管理工具.在 Ubuntu 下,可以使用 ap ...

  8. RabbitMQ Go客户端教程4——路由

    本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第四篇--路由. 这些教程涵盖了使用RabbitMQ创建消息传递应用程 ...

  9. 玩转OpenMLDB社区,四张角色卡待解锁

    关于OpenMLDB OpenMLDB 是一个开源机器学习数据库,提供企业级 FeatureOps 全栈解决方案.OpenMLDB 致力于闭环解决 AI 工程化落地的数据治理难题,并且已经在上百个企业 ...

  10. 同一局域网ping ip 失败(可能是你的路由器坑了你)

    事件起源:手机需要通过fiddler代理抓包 一顿操作猛如虎,手机输入ip+端口,芭比q了,连接不上.. 解决思路: 一.保证双方处于同一局域网内 二.查看电脑配置,找到 防火墙,关闭防火墙,再试 三 ...