ES6

1. var let const

let,const具有块级作用域,不具有变量提升

const 用于不能被重新赋值的变量

2. 箭头函数

我们经常要给回调函数给一个父级的this

常用办法就是 var self = this 定义一个变量接住他

使用 箭头函数,this 将不会受到影响,可以直接用this调用父级的this

3. 字符串

includes:

const string = 'food';

const substring = 'foo';

console.log(string.includes(substring));

返回的是布尔值。

string.repeat(str,count)

如果 string.length < count 即插入str到count == string.length为止

4. 模板字符串

const name = 'Tiger';

const age = 13;

console.log(`My cat is named ${name} and is ${age} years old.`);

5.解构

结构数组:

let [a, b, c, d] = [1, 2, 3, 4];

console.log(a);

console.log(b);

结构对象:

var luke = { occupation: 'jedi', father: 'anakin' };

var occupation = luke.occupation;

var father = luke.father;

-------------------------------------------------------------

let luke = { occupation: 'jedi', father: 'anakin' };

let {occupation, father} = luke;

console.log(occupation);

console.log(father);

6.模块

暴露对象:

function sumThree(a, b, c) {

return a + b + c;

}

export { sumThree };

引入:

import { sumThree } from 'math/addition';

7.参数

es6支持设置默认值:

function addTwoNumbers(x=0, y=0) {

return x + y;

}

8.rest参数

处理不定数目参数:

function logArguments(...args) {

for (let arg of args) {

console.log(arg);

}

}

9.展开操作

可以展示数组:

Math.max(...[-1, 100, 9001, -32]);

let cities = ['San Francisco', 'Los Angeles'];

let places = ['Miami', ...cities, 'Chicago']; // ['Miami', 'San Francisco', 'Los Angeles', 'Chicago']

10.类

创造类:

class Person {

constructor(name, age, gender) {

this.name  = name;

this.age    = age;

this.gender = gender;

}

incrementAge() {

this.age += 1;

}

}

11.Maps

可以理解成键值对

let map = new Map();

map.set('name', 'david');

map.get('name');

map.has('name');

12.Promises

远离回调地狱,可以转换成垂直代码

func1(value1)

.then(func2)

.then(func3)

.then(func4)

.then(func5, value5 => {

});

13.Generators

用同步的代码风格来写异步代码

function* genFunc() {

// (A)

console.log('First');

yield; //(B)

console.log('Second'); //(C)

}

ES7

1. includes

代码:

let array = ['1','2','3']

if(array.includes('2')){

console.log('有')

}

2. 指数操作符

2**3 == 8

ES8

1. object.entries()

代码:

let obj = {a: 1, b: 2, c: 3};

Object.entries(obj).forEach(([key, value]) =>{

console.log(key + ": " + value); // 输出a: 1, b: 2, c: 3

})

2.Async Await

异步看起来和同步写法一样

代码:

async fetchData(query) =>{

try {

const response = await axios.get(`/q?query=${query}`);

const data = response.data;

return data;

}

catch (error) {

console.log(error)

}

}

fetchData(query).then(data => {

this.props.processfetchedData(data)

})

作者:Charlescat
链接:https://www.jianshu.com/p/f8145c799456
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

es6,es7,es8语法总结相关推荐

  1. Sencha Cmd 6/7 让你的 ExtJS6/7 项目使用 ES6/ES7/ES8 语法规范

    原文链接:https://blog.csdn.net/lovelyelfpop/article/details/78528107 Sencha Cmd 6.5 最大的变化: 支持动态加载包(dynam ...

  2. 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理)

    一.介绍 现在的网络上已经有各样关于 ECMAScript 规范介绍和分析的文章,而我自己重新学习一遍这些规范,整理出这么一份笔记,比较精简,主要内容涵盖ES6.ES7.ES8.ES9,后续会增加面试 ...

  3. ES6/ES7常用语法记录

    记录比较常用的ES6/ES7语法 一.检测是否为数组 1.instanceof 方法 const arr = new Array() // const arr = [] arr instanceod ...

  4. ES6/ES7/ES8/ES9/ES10常用特性和新特性最全总结

    ES6 ES6在ES5的基础上新增了一系列特性,这里仅列出常用特性 变量的改变,添加了块级作用域的概念 let声明变量(块级作用域),let是更完美的var,它声明的全局变量不是全局属性widow的变 ...

  5. ES6, ES7, ES8, ES9 以及 ES10 新特征

    目录 1.  ES6 新特征 (2015) 1.1 module 1.1.1 export 1.1.2 import 1.2 Arrow function (箭头函数) 1.2.1 箭头函数结构 1. ...

  6. ES6/ES7/ES8新特性汇总

    ES6起各个版本的新特性汇总 ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMA-417.关于ECMA的 ...

  7. [vue-cli]vue-cli生成的项目可以使用es6、es7的语法吗?为什么?

    [vue-cli]vue-cli生成的项目可以使用es6.es7的语法吗?为什么? vue-cli 配置了babel,可以将es6,es7....etc在webpack打包的时候转换成es5的代码,所 ...

  8. es7,es8,es9新特性

    es7,es8,es9新特性 1. ES7新特性(ECMAScript 2016) ES7在ES6的基础上主要添加了两项内容: Array.prototype.includes()方法 求幂运算符(* ...

  9. es6 对象中是否有键值_干货| ES6/ES7好玩实用的特性介绍

    本文介绍一些ES6/ES7好玩实用又简单的特性,或许对写代码的效率也有一定帮助噢. ES6/ES7的出现已经有一段时间了,里面的一些新特性你们是否了解呢?本骚年将结合自身的一些使用经历介绍一些简单实用 ...

最新文章

  1. 【面试必备】javascript的原型和继承
  2. iOS开发知识点总结
  3. 1130 Infix Expression (25 分)【难度: 一般 / 知识点: 中序遍历】
  4. flink批处理中的source以及sink介绍
  5. Python(39)_选出列表中的大于66的数字放在字典中
  6. MOSS 2007的备份与恢复
  7. jpa多表关联查询_Spring Boot 整合mybatis如何自定义 mapper 实现多表关联查询
  8. parseInt 的使用方式,基数表达
  9. silverlight安装后仍提示未安装_CAD提示“许可管理器不起作用或未正确安装”?来,我来教你方法...
  10. kepware modbus
  11. tftpd64-SE使用
  12. JAVA中InputStream转base64
  13. 从蚂蚁金服的BI和大数据团队建设,看透BI发展,再不懂就落伍了
  14. 警务系统三维可视化管理与情报研判综合分析平台
  15. 基本系统调用性能lmbench测试方法和下载
  16. iOS中SDK的简单封装与使用
  17. python成绩查询系统_python成绩查询
  18. 运维必备的DevOps工具链大盘点
  19. thinkpad笔记本 刷bios失败,被救回方法
  20. [GYCTF2020]Blacklist 1

热门文章

  1. 《南溪的目标检测学习笔记》——特征归一化(meadstd)
  2. 《南溪的目标检测学习笔记》——后处理方法的学习笔记
  3. 【less-5】基于SQLI的SQL盲注常用函数
  4. GitLab CI/CD conda: command not found
  5. 获取当前网页的绝对URL地址
  6. 【Qt教程】2.4 - Qt5 控件 - QListWidget列表框
  7. ASP.NET MVC 1.0 学习笔记(随时更新)
  8. 二叉树中序遍历的下一个节点
  9. 389. Find the Difference
  10. 静态化 - 真静态技术