数值扩展概述: 在ES5的基础上ES6 新增了一些数值方法:

代码实现:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>数值扩展</title>
</head>
<body>
<script>
// 数值扩展
// 0. Number.EPSILON 是 JavaScript 表示的最小精度
// EPSILON 属性的值接近于 2.2204460492503130808472633361816E-16
// function equal(a, b){
// return Math.abs(a-b) < Number.EPSILON;
// }
console.log("0、Number.EPSILON 是 JavaScript 表示的最小精度");
// 箭头函数简化写法
equal = (a, b) => Math.abs(a-b) < Number.EPSILON;
console.log(0.1 + 0.2);
console.log(0.1 + 0.2 === 0.3); // false
console.log(equal(0.1 + 0.2, 0.3)); // true
// 1. 二进制和八进制
console.log("1、二进制和八进制");
let b = 0b1010;
let o = 0o777;
let d = 100;
let x = 0xff;
console.log(x);
// 2. Number.isFinite 检测一个数值是否为有限数
console.log("2、Number.isFinite 检测一个数值是否为有限数");
console.log(Number.isFinite(100));
console.log(Number.isFinite(100/0));
console.log(Number.isFinite(Infinity));
// 3. Number.isNaN 检测一个数值是否为 NaN
console.log("3. Number.isNaN 检测一个数值是否为 NaN");
console.log(Number.isNaN(123));
// 4. Number.parseInt Number.parseFloat字符串转整数
console.log("4. Number.parseInt Number.parseFloat字符串转整数");
console.log(Number.parseInt('5211314love'));
console.log(Number.parseFloat('3.1415926神奇'));
// 5. Number.isInteger 判断一个数是否为整数
console.log("5. Number.isInteger 判断一个数是否为整数");
console.log(Number.isInteger(5));
console.log(Number.isInteger(2.5));
// 6. Math.trunc 将数字的小数部分抹掉
console.log("6. Math.trunc 将数字的小数部分抹掉 ");
console.log(Math.trunc(3.5));
// 7. Math.sign 判断一个数到底为正数 负数 还是零
console.log("7. Math.sign 判断一个数到底为正数 负数 还是零");
console.log(Math.sign(100));
console.log(Math.sign(0));
console.log(Math.sign(-20000));
</script>
</body>
</html>

对象扩展概述: ES6 新增了一些 Object 对象的方法:

1. Object.is 比较两个值是否严格相等,与『===』行为基本一致(+0 与 NaN);

2. Object.assign 对象的合并,将源对象的所有可枚举属性,复制到目标对象;

3. proto、setPrototypeOf、 setPrototypeOf 可以直接设置对象的原型;

代码实现:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>对象扩展</title>
</head>
<body>
<script>
// 对象扩展
// 1. Object.is 比较两个值是否严格相等,与『===』行为基本一致(+0 与 NaN);
console.log(Object.is(120,120)); // ===
// 注意下面的区别
console.log(Object.is(NaN,NaN));
console.log(NaN === NaN);
// NaN与任何数值做===比较都是false,跟他自己也如此!
// 2. Object.assign 对象的合并,将源对象的所有可枚举属性,复制到目标对象;
const config1 = {
host : "localhost",
port : 3306,
name : "root",
pass : "root",
test : "test" // 唯一存在
}
const config2 = {
host : "http://zibo.com",
port : 300300600,
name : "root4444",
pass : "root4444",
test2 : "test2"
}
// 如果前边有后边没有会添加,如果前后都有,后面的会覆盖前面的
console.log(Object.assign(config1,config2));
// 3. __proto__、setPrototypeOf、 getPrototypeOf 可以直接设置对象的原型;
const school = {
name : "尚硅谷"
}
const cities = {
xiaoqu : ['北京','上海','深圳']
}
// 并不建议这么做
Object.setPrototypeOf(school,cities);
console.log(Object.getPrototypeOf(school));
console.log(school);
</script>
</body>
</html>

JS:ES6-11 数值扩展与对象扩展相关推荐

  1. 第七节:ES6为数值做了哪些扩展?

    上一节和大家学习了字符串的扩展,这一节轮到了数值,我们一起来学习数值的扩展. 这几天公众号都收到了很多同学问,什么时候出下一节,大家的期待和学习热情如此高涨,前端君也不会怠慢,继续更新.剧透一下,这一 ...

  2. ES6新特性_ES6的对象扩展方法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记040

    然后我们看一下es6中的对象扩展方法 可以看到有个Object.is(120,121); 这个相当于判断是否相等,也就是是否是某个对象. 可以看到120,和121 不相等. 然后120和120相等. ...

  3. js ... es6中三个点是什么意思 真名叫扩展运算符

    前言:求真 求实 东西实现了 居然不知道怎么做完的 有点恐怖 背景 js去重 let inCmpGroup = [...new Set(this.selectedData.map(x => x. ...

  4. ECMA2015(ES6)简单入门-9-对象-对象的扩展-对象的新增方法

    对象的创建 使用Object构造函数来创建一个对象 使用对象字面量创建一个对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 本身也有缺陷,就是实例共享了引用类型friends,从下面的代 ...

  5. ES6新增语法与内置对象扩展

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是ES6 ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项 ...

  6. es6 内置对象扩展rest, Arry 扩展方法Array.from(),find(), findIndex(),includes()

    1.es6内置对象扩展rest实参 2.  Arry 扩展方法    (1)构造函数方法:Array.from()   (2) find()   (3) findIndex()   (4)includ ...

  7. js Function对象扩展与延时执行函数实例代码

    网页特效 function对象扩展与延时执行函数实例代码 function.prototype.delay=function(this1,timeout){ this1=this1||null; ti ...

  8. es6之三个点(...) 扩展运算符数组和对象的使用场景及最常见的用法(霸霸看了都说好)

    概念 es6之扩展运算符 (-) 简称三个点 数组的扩展运算符应用 复制数组 扩展运算符提供了复制数组的简便写法. const a1 = [1, 2]; // 写法一 const a2 = [...a ...

  9. 第八节:ES6为数组做了哪些扩展?

    广东的小伙伴大家还好吗,天气都热成狗了! 今天就不发预告了,直接推送图文. 前面讲了字符串和数值的扩展,今天要讲的是:数组的扩展.不知道大家能否跟得上这个节奏,你们在阅读中对讲解有存在疑惑,记得留言提 ...

最新文章

  1. 微软披露了Spartan中所使用的渲染引擎的细节
  2. Tips--更改Jupyter Notebook的默认工作路径
  3. java逆序对距离之和,七天刷完剑指offer-【第27道-第37道】
  4. 图神经网络中的Graph Pooling
  5. php根据ajax传值跳转页面_vue中动态路由的跳转(name | path) 前进后退 replace...
  6. 「CodePlus 2017 11 月赛」大吉大利,晚上吃鸡!
  7. Java 动手写爬虫: 一、实现一个最简单爬虫
  8. mysql 显示表情符号_mysql 支持emoji 表情字符的解决方法。
  9. MS Excel生成二维码
  10. php不能上传doc文件,PHPCMS不能上传WORD、EXCEL等文件的问题
  11. python编写赛车_「世界模型」实现,一步步让机器掌握赛车和躲避火球的技能
  12. 列出美国每个州及一个邮编
  13. 基于Qualcomm骁龙处理器的脸部识别开发
  14. python基础,变量,常量,python内置管理,列表,解压缩,python与用户交互,格式化输出的三种方式。...
  15. excel如何快速筛选出重复项
  16. PHP生成微信临时和永久二维码
  17. 爬坑 Android Studio 利用Android WIFI ADB 插件实现真机无线调试
  18. 51单片机+ds1302+lcd1602简易电子时钟(带闹钟功能)
  19. 机房收费系统Number two
  20. 【强化学习】强化学习概述

热门文章

  1. Android开发笔记(九十六)集合动画与属性动画
  2. linux fileinfo.so,Centos 下编译安装fileinfo扩展
  3. nohup + 保证服务后台运行不中断
  4. 函数式编程了解一下(上)
  5. tomcat启动问题
  6. Java ---学习笔记(泛型)
  7. [转]用行为树的方式思考
  8. 隐马尔科夫模型及Viterbi算法的应用
  9. 【图文详解】,cisco,***配置
  10. 烟花视频软件测试,基于视频分析的烟火自动检测预警系统