es6,es7,es8语法总结
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语法总结相关推荐
- Sencha Cmd 6/7 让你的 ExtJS6/7 项目使用 ES6/ES7/ES8 语法规范
原文链接:https://blog.csdn.net/lovelyelfpop/article/details/78528107 Sencha Cmd 6.5 最大的变化: 支持动态加载包(dynam ...
- 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理)
一.介绍 现在的网络上已经有各样关于 ECMAScript 规范介绍和分析的文章,而我自己重新学习一遍这些规范,整理出这么一份笔记,比较精简,主要内容涵盖ES6.ES7.ES8.ES9,后续会增加面试 ...
- ES6/ES7常用语法记录
记录比较常用的ES6/ES7语法 一.检测是否为数组 1.instanceof 方法 const arr = new Array() // const arr = [] arr instanceod ...
- ES6/ES7/ES8/ES9/ES10常用特性和新特性最全总结
ES6 ES6在ES5的基础上新增了一系列特性,这里仅列出常用特性 变量的改变,添加了块级作用域的概念 let声明变量(块级作用域),let是更完美的var,它声明的全局变量不是全局属性widow的变 ...
- 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. ...
- ES6/ES7/ES8新特性汇总
ES6起各个版本的新特性汇总 ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMA-417.关于ECMA的 ...
- [vue-cli]vue-cli生成的项目可以使用es6、es7的语法吗?为什么?
[vue-cli]vue-cli生成的项目可以使用es6.es7的语法吗?为什么? vue-cli 配置了babel,可以将es6,es7....etc在webpack打包的时候转换成es5的代码,所 ...
- es7,es8,es9新特性
es7,es8,es9新特性 1. ES7新特性(ECMAScript 2016) ES7在ES6的基础上主要添加了两项内容: Array.prototype.includes()方法 求幂运算符(* ...
- es6 对象中是否有键值_干货| ES6/ES7好玩实用的特性介绍
本文介绍一些ES6/ES7好玩实用又简单的特性,或许对写代码的效率也有一定帮助噢. ES6/ES7的出现已经有一段时间了,里面的一些新特性你们是否了解呢?本骚年将结合自身的一些使用经历介绍一些简单实用 ...
最新文章
- 【面试必备】javascript的原型和继承
- iOS开发知识点总结
- 1130 Infix Expression (25 分)【难度: 一般 / 知识点: 中序遍历】
- flink批处理中的source以及sink介绍
- Python(39)_选出列表中的大于66的数字放在字典中
- MOSS 2007的备份与恢复
- jpa多表关联查询_Spring Boot 整合mybatis如何自定义 mapper 实现多表关联查询
- parseInt 的使用方式,基数表达
- silverlight安装后仍提示未安装_CAD提示“许可管理器不起作用或未正确安装”?来,我来教你方法...
- kepware modbus
- tftpd64-SE使用
- JAVA中InputStream转base64
- 从蚂蚁金服的BI和大数据团队建设,看透BI发展,再不懂就落伍了
- 警务系统三维可视化管理与情报研判综合分析平台
- 基本系统调用性能lmbench测试方法和下载
- iOS中SDK的简单封装与使用
- python成绩查询系统_python成绩查询
- 运维必备的DevOps工具链大盘点
- thinkpad笔记本 刷bios失败,被救回方法
- [GYCTF2020]Blacklist 1