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)

})

原文链接:https://www.jianshu.com/p/f8145c799456

ES6、ES7、ES8语法总结的更多相关文章

  1. ES7/ES8 语法学习

    作为一个前端开发者,感觉需要学习的东西贼多,ES6刚学会用没多久,又得学习了解ES7/ES8新增的东西,这里是看了大佬们文章的一点点总结以及摘抄的内容,给自己当笔记使用 内容转载自:https://w ...

  2. es6,es7,es8

    概述 ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMAScript-262. ECMAScript 标 ...

  3. es6/es7/es8常用新特性总结(超实用)

    本文标题有误导性,因为我其实想写node8的新特性,说实话一下子从node v1.x跳跃到node 8.x+ 真有点受宠若惊的感觉.一直觉得node 数组. 对象.序列等的处理没有python方便,因 ...

  4. ES6/ES7/ES8新特性

    ES6 变量的改变 let const 2. 字符串新增方法 let str = 'react'; str.includes('re') // true str.repeat(3) // reactr ...

  5. ES6 ES7 ES8 相关用法

    set Set作为ES6新的数据解构(类数组),它的成员都是唯一的,因为最直接的使用场景便是去重.并.差.交集的使用.它使用的算法叫做“Same-value-zero equality”,类似精确运算 ...

  6. 【JavaScript】--- ES6/ES7/ES8

    一.async async其实是ES7才有有的关键字,async的意思是异步,顾名思义是有关异步的操作 async用于声明一个函数是异步的. 通常情况下async.await都是跟随promise一起 ...

  7. ES6/ES7/ES8常用特性和新特性

    转自:https://www.jianshu.com/p/9da4aa1c9970

  8. webpack 兼容低版本浏览器,转换ES6 ES7语法

    ES6,ES7真的太棒了,async +await+Promise,让我阅读代码的时候不用再从左拉到右了(异步太多,一层套一层真的太头痛) 但是有个问题,打包后低版本浏览器运行不了,还有我用了一些混淆 ...

  9. 细解JavaScript ES7 ES8 ES9 新特性

    题记:本文提供了一个在线PPT版本,方便您浏览 细解JAVASCRIPT ES7 ES8 ES9 新特性 在线PPT ver 本文的大部分内容译自作者Axel Rauschmayer博士的网站,想了解 ...

  10. node mysql es6/es7改造

    本文js代码采取了ES6/ES7的写法,而不是commonJs的写法.支持一波JS的新语法.node版本的mysql驱动,通过npm i mysql安装.官网地址:https://github.com ...

随机推荐

  1. 项目中spring容器加载的问题

    今天做一个项目采用的是传统架构,没有采用分布式,部署时出现了异常,信息是: org.springframework.beans.factory.NoSuchBeanDefinitionExceptio ...

  2. Java找出两个链表的第一个公共节点

    题目描述输入两个链表,找出它们的第一个公共结点. 我的思路:因为是链表,长度都是未知的,不能盲目的两个一起开始自增判断. 首先需要得到 L1的长度 和 L2的长度,让较长的那个先走 (length1- ...

  3. Python爬虫-selenium的使用(2)

    使用selenium打开chrome浏览器百度进行搜索 12345678910111213141516171819202122232425 from selenium import webdriver ...

  4. 谷歌Waymo估值700亿:自动驾驶迎来春天,但前路漫漫

    在经过近一年的法庭之争后,Waymo与Uber的自动驾驶专利权诉讼案于近日宣布和解.最终的结果,是Uber向Waymo支付0.34%股权(目前价值2.44亿美元).但事实上,与Uber的官司解决后,一 ...

  5. 纯js文件弹出窗写法

    <dialog id="myDialog"> 01234567890 <a href="javascript:;" id="clos ...

  6. 多线程的join功能

    import threading import time def thread_job(): print("T1 start\n") for i in range(30): tim ...

  7. Python 破解极验滑动验证码

    Python 破解极验滑动验证码 测试开发社区  1周前 阅读目录 极验滑动验证码 实现 位移移动需要的基础知识 对比两张图片,找出缺口 获得图片 按照位移移动 详细代码 回到顶部 极验滑动验证码 以 ...

  8. 腾讯入股Snap,能救“阅后即焚”的命吗?

    ​ ​   互联网社交的强大包容性,让各种社交形式都能有着较多的受众群体.普适性极广的QQ.微信."脸谱":专攻陌生人社交的陌陌:让人们发布意见的微博--当然也少不了"阅 ...

  9. concurrent包分析之Executor框架

    文章目录 线程生命周期的开销:线程比较少的情况使用new Thread(task)无多大影响,但是如果涉及到线程比较多的情况,应用的性能就会受到影响,如果jdbc创建连接一样,new Thead创建线 ...

  10. Mysql(或者sqlite), Mongo中update Column + 1

    Mysql(或者sqlite), Mongo中update Column + 1 有类似以下需求,在数据库表里有一个字段,记录了一个count,然后又时候需要在count的基础上加上某个数字,比如1. ...