参照阮一峰博客:http://es6.ruanyifeng.com/#README

es6常见题:https://blog.csdn.net/qq_39207948/article/details/80678800

数组用法:https://blog.csdn.net/tang15886395749/article/details/65629898

导航:

1.箭头函数

2.字符串拓展

3.函数拓展

4.数组拓展

5.对象拓展

一、简单介绍一下ES6加了些什么?

一、箭头函数

特点:①.简化代码;②改变this的指向,谁创建函数,this就指向谁。

1. 简单的定义:
胖箭头函数 Fat arrow functions,又称箭头函数,是一个来自ECMAScript 2015(又称ES6)的全新特性。有传闻说,箭头函数的语法=>,是受到了CoffeeScript 的影响,并且它与CoffeeScript中的=>语法一样,共享this上下文。
箭头函数的产生,主要由两个目的:更简洁的语法和与父作用域共享关键字this。接下来,让我们来看几个详细的例子
当需要编写一个简单的单一参数函数时,可以采用箭头函数来书写,标识名 => 表达式。
这样就可以省却 function 和 return 的输入,还有括号,分号等。箭头函数是ES6新增加的一个特性。
    , name: Alice })
箭头函数还可以和解构赋值 Destructuring 联合使用.
const f = ({ first, last }) => first + '' + last;
可以简化回调函数,大大简化和缩短代码行数。
2. 箭头函数和普通函数的区别(this的指向)
普通函数与箭头函数有个微小的不同点。 箭头函数没有自己的this值 ,其this值是通过继承其它传入对象而获得的,通常来说是上一级外部函数的 this 的指向。
);
}

}); //id: 42;

这个例子中, setTimeout 的参数是一个箭头函数, 每隔100毫秒运行一次,如果是普通函
数,执行的 this 应该指向全局对象, 但是箭头函数会让 this 总是指向函数所在的对象
箭头函数里面嵌套箭头函数会有多少个this呢?
看一个简单的例子
})()()(); ,
};
));
3. 怎么处理好箭头函数的使用问题呢?
使用非箭头函数来处理由object.method()语法调用的方法。因为它们会接收到来自调用者的有意义的this值。
在其它场合都使用箭头函数。
4. 使用箭头函数的注意点
箭头函数在参数和箭头之间不能换行。函数体内的this对象就是定义时所在的对象,而不是使用时所在的对象。
};
;
) ) ) ) ) ) )
, , , , , , , ) ) , , , , , , ) {
) {
; ; ;

, , ) , , )
注意,rest 参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。
) {
) {
):: , ) // Object {x: 1, y: 2}

方法
const o = {
method() {
return "Hello!";
}
};

// 等同于

const o = {
method: function () {
return "Hello!";
}
};

属性的遍历

ES6 一共有 5 种方法可以遍历对象的属性。
(1)for...in
for...in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。
(2)Object.keys(obj)
Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。
(3)Object.getOwnPropertyNames(obj)
Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。
(4)Object.getOwnPropertySymbols(obj)
Object.getOwnPropertySymbols返回一个数组,包含对象自身的所有 Symbol 属性的键名。
(5)Reflect.ownKeys(obj)
Reflect.ownKeys返回一个数组,包含对象自身的所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。
以上的 5 种方法遍历对象的键名,都遵守同样的属性遍历的次序规则。
首先遍历所有数值键,按照数值升序排列。
其次遍历所有字符串键,按照加入时间升序排列。
最后遍历所有 Symbol 键,按照加入时间升序排列。
https://www.cnblogs.com/liutie1030/p/5997446.html

深入浅出:了解JavaScript的ES6、ES7新特性的更多相关文章

  1. JavaScript:ES6的新特性

    1.关键字 const:修饰常量.ES6之前只有变量的声明字段var,ES6开始引入常量关键字,被修饰的变量无法被修改. <script type="text/javascript&q ...

  2. JavaScript之ES6常用新特性

    参考:https://www.jianshu.com/p/ac1787f6c50f 变量声明:const 与 let const:常量,必须初始化值   let:变量 格式:const 变量A = & ...

  3. ES6常用新特性

    https://segmentfault.com/a/1190000011976770?share_user=1030000010776722 该文章为转载文章!仅个人喜好收藏文章! 1.前言 前几天 ...

  4. ES6 && ECMAScript2015 新特性

      ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES201 ...

  5. es6的新特性--模板字符串

    这几天简单看了一下深入浅出es6这本书,感觉特实用,学习了一个新特性---模板字符串在项目开发中,拼接字符串是不可缺少的,动态创建dom元素以及js操作数据都要拼接字符串,在es6出来之前,我们都通常 ...

  6. ES6相关新特性介绍

    你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在 ...

  7. JS - ECMAScript2015(ES6)新特性

    友情提示:本文仅mark几个常用的新特性,详细请参见:ES6入门 - ryf: 碎片 var VS let VS const var:声明全局变量, let:声明块级变量,即局部变量 const:声明 ...

  8. ES6的新特性(1)——ES6 的概述

    ES6 的概述 首先,感谢马伦老师的ES6新特性的教程. ECMAScript 和 JavaScript 的关系是 ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前 ...

  9. ES7新特性

    Array.prototype.includes Array.prototype.includes用法都容易和简单.它是一个替代indexOf,开发人员用来检查数组中是否存在值,indexOf是一种尴 ...

  10. ECMAScript 2016(ES7)新特性简介

    简介 自从ES6(ECMAScript 2015)在2015年发布以来,ECMAScript以每年一个版本的速度持续向前发展.到现在已经是ECMAScript 2020了. 每个版本都有一些新的特性, ...

随机推荐

  1. 性能测试工具Jmeter05-badboy检查点与参数化

    检查点设置 选择要检查的文字,然后在Tools->Add Assertion for Selection里添加断言,在进行回放    参数化 在请求搜索关机键字的部分进行参数化 选中搜索关键字- ...

  2. (转)DB2 8.2 for aix5L安装和配置步骤

    DB2 8.2 for aix5L安装和配置步骤[@more@] AIX5.2上安装DB2 V8.2安装平台:IBM eserver,AIX 5.3 64位 一 删除以有的DB2系统: 1.停止DB2 ...

  3. C/C++中 static 的作用

    在C中,有三个作用: 1.修饰全局变量: 作用是隐藏,也就是这个全局变量仅在本文件中可见. 2.修饰局部变量: 作用是扩展变量的生存期,令这个局部变量成为静态的. 3.修饰函数: 作用是隐藏,将此函数 ...

  4. 【snmp】测试流程

    一.SNMP协议概述 SNMP是基于TCP/IP协议族的网络管理标准,是一种在IP网络中管理网络节点(如服务器.工作站.路由器.交换机等)的标准协议.SNMP能够使网络管理员提高网络管理效能,及时发现 ...

  5. Nginx 在Windows下搭建静态Web服务

    简介 nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP ...

  6. Devexpress Xtrareports 创建多栏报表

    根据官方回答:多列或多行(取决于当前的多栏设置)呈现数据的报表 这种报表是有用的,例如,当每个明细区都只显示少量数据.并且需要在一列的右侧打印下一个明细区时,这样就能充分利用整个页面的宽度,此外,当创 ...

  7. 网页设计,Access入门 2010,数学

    网页设计(表格) 创建表格:插入---表格---设置表格大小---确定.(按Ctrl键可多选单元格) 插入图片在表格:光标在单元格---插入---图像---选择图像---确定. 表格属性:属性(屏幕下 ...

  8. MSSql关闭自增列

    在对已经建好表结构的表抽取数据的时候,突然报错,根据Error发现,不能显式插入有自增列的值. 于是搜索后,用 set IDENTITY_INSERT #Tmp onset IDENTITY_INSE ...

  9. webpack中package.json中的Script

    初始化项目 cnpm init -y ,会自动生成一个package.json文件:主要是显示项目的名称.版本.作者.协议等信息 在package.json中scripts中配置:(运行简化) 开发模 ...

  10. 将BufferedImage转换为InputStream,亲测可用

    private static final Logger logger = Logger.getLogger(Demo.class); /** * 将BufferedImage转换为InputStrea ...