sublime3安装Es6插件
javascriptNext,然后安装即可
Java​Script​Next - ES6 Syntax()高亮插件
-----------------------------------------------------------------
let、const命令 与var声明
let块级作用域
let不允许在代码块内重复声明一个变量
function aa(){
let a=3
{
let a=5 //子作用域
}
}
使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象;
使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升;
使用const声明的是常量,在后面出现的代码中不能再修改该常量的值。
-----------------------------------------------------------------
数组结构:
let [a,b,c,d] = ["aa","bb","23","44"]
对象解构
函数参数解构
-----------------------------------------------------------------
Symbol(值类型数据,唯一的)
let a = 3
let b = 3
alert(a=b) //true
-------------------
let a = Symbol(3)
let b = Symbol(3)
alert(a=b)//false
-----------------------------------------------------------------
Set
var set = new Set([1,2,3,4,5,2,8,4])//自动合并了重复值
for(var key in set){
console.log(key) //1,2,3,4,5,8
}
---------------------------------
let arr = [1,2,3,4,2,86,4]
arr.map(function(item){
set add(elem) //添加元素
})
map---->Es5语法
-----------------------------------------------------------------
WeakSet(与Set类似唯一区别就是成员只能是对象)
var weakset = new WeakSet();
-----------------------------------------------------------------
Map遍历 键可以是各种类型
let obj1 = {};
let obj2 = {};
let obj = new Object();
obj[obj1] = 33;
obj[obj2] = 66;
for(let key in obj){
console.log(key) //只循环出一个object
}
---------------------------------------
var mapData = new Map();
var obj1 = {};
var obj2 = {};
mapData.set(obj1,"22") //添加新元素
mapData.set(obj2,"22") //添加新元素
console.log(mapData.get("obj1")) //获取键
console.log(mapData.has("obj1")) //判断是否含有键
console.log(mapData.delete("obj1")) //删除键
mapData.clear() //清空

-----------------------------------------------------------------
WeakMap不可遍历没有size属性
var wm = new WeakMap();
var obj = new Object();
console.log(wm.get(obj)) //undefined
console.log(wm.has(obj)) //false
-----------------------------------------------------------------
Itrator遍历器
let arr = ["bob","pop","wow"];
let op = arr[Symbol.iterator]();
console.log(op.next());
console.log([...arr]) //依旧是数组
-----------------------------------------------------------------
Generator函数;
1.function的关键字和函数名称之间有个*号
2.函数体内可以用yield语句
3.函数调用后不会立即执行,返回的是一个遍历器对象;
function Es.(){
function *aa(){
yield"中国";
yield"美工";
yield"技术";
return "end";
}
let a = aa();
console.log(a.netx());
}
-----------------------------------------------------------------
Promise对象
三种状态:Pending(等待)、resolve(成功)、reject(失败)
异步操作解决方案,比原有的回调函数等方式更为合理
该对象改变状态只有两种可能Pending转变为resolve,Pending转变为reject;


function aa(){
function bb(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(123456)
},1000)
})
}
}
-----------------------------------------------------------------
async函数:(ES7)
await Promise.reject("出错了") //抛出例外,直接到例外处理处
var asyncFun = async function(){
var a1 = await function(){
setTimeout(function(){
console.log(111)
},3000)
}();
var a2 = await function(){
setTimeout(function(){
console.log(222)
},1000)
}();
console.log("执行完毕")
}
asyncFun();//先打印222再打印111;
---------------------------------
let asyncFun1 = async function(){
console.log("aaa")
return "第一个"
}
let asyncFun2 = async function(data){
console.log("bbb"+data)
return "第二个"
}
asyncFun1().then(asyncFun2).then(function(data){
console.log("这是最后执行"+data)
})


-----------------------------------------------------------------
箭头函数:(省去function关键字内部没有prototype和构造器constructor,不支持new操作,this指向会改变)


Es5写法
function a(a=6){
return a*a
}


Es6写法
let fn = (a=6)=>a*a;
console.log(fn(9));//81


Es5函数内部this不会改变,异步操作this也会改变如(async和setTimeout)
-----------------------------------------------------------------
class类(方法没有重载也就是说不可以覆盖)
class Person{
constructor(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
}


getName(){
console.log(this.name)
}
}
let person = new Person("bob",18,"男");
person.getName();

 

ES6语法糖集锦的更多相关文章

  1. ES6 语法糖

    重新认识ES6中的语法糖:https://segmentfault.com/a/1190000010159725

  2. es6语法糖

    ES6为一些已有的功能提供了非破坏性更新,这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些,称之为语法糖. 对象属性的简洁表示法 声明的对象中包含若干属性,其属性值由变量表示,且变量名和属 ...

  3. 常用处理数据用法es6 语法糖总结

    一 循环(数组 ,集合)   1 forEach-----------可以遍历得到vaue和index   const arr = ['red', 'green', 'blue'];arr.forEa ...

  4. ES6深入浅出-3 三个点运算 & 新版字符串-1.函数与对象的语法糖

    主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...

  5. ES6语法的新特性

    ES6 就是ECMAScript 6是新版本JavaScript语言的标准.虽然目前已经更新到ES7,但是很多浏览器还不知处ES7语法,该标准仍在更新中,但目前部门网站都指出ES6的语法.目前ES6也 ...

  6. 详解es6 class语法糖中constructor方法和super的作用

    大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中 ...

  7. ES6之对象的语法糖

    本文介绍下ES6中对象的一些拓展功能. 这三个语法糖在实际的项目开发中经常会见到.

  8. ES6 class 语法糖不能直接定义原型上的属性

    今天注意到两个东西: 1.为了模拟面向对象,JavaScript的class语法糖屏蔽了原型的概念 class A{ a = 1   // 注意!!这里定义的不是在prototype上的属性,而是给实 ...

  9. 把JavaScript代码改成ES6语法不完全指南

    目录 * 核心例子 * 修改成静态变量(const)或块级变量(let) * 开始修改 * 疑问解释(重复定义会发生什么) * 疑问解释(let的块级作用域是怎样的) * 疑问解释(const定义的变 ...

随机推荐

  1. 设计模式-(6)适配器 (swift版)

    用来解决接口适配问题的三种模式:适配器模式,桥接模式,外观模式. 一,概念 适配器模式,将一个类的结构转换成用户希望的另一个接口,使得原本接口不兼容的类能在一起工作.换句话说,适配器模式就是链接两种不 ...

  2. sabaki and leelazero

    https://tieba.baidu.com/p/5462772621?see_lz=1 http://zero.sjeng.org/ https://www.jianshu.com/p/a4ba1 ...

  3. HubbleDotNet开源全文搜索数据库项目--技术详解

    HubbleDotNet 简介 HubbleDotNet 和 Lucene.net 性能对比测试 HubbleDotNet 和 Lucene.Net 匹配相关度的比较 HubbleDotNet 软件架 ...

  4. I.MX6 Android can-utils 移植

    /******************************************************************* * I.MX6 Android can-utils 移植 * ...

  5. 并不对劲的bzoj5341:loj2553:uoj400:p4565:[Ctsc2018]暴力写挂

    题目大意 有两棵\(n\)(\(n\leq366666\))个节点的树,\(T\)和\(T'\),有边权 \(dep(i)\)表示在\(T\)中\(i\)号点到\(1\)号点的距离,\(dep'(i) ...

  6. Linux IO多路复用之epoll网络编程(含源码)

    前言 本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下: 客户端从标准输入读入一行,发送到服务端 服务端从网络读取一 ...

  7. html/html5中的download属性

    兼容性不是很好, 只是了解一下: 主要表现在跨域策略的处理上,Chrome浏览器和FireFox浏览器: 如果需要下载的资源是跨域的,包括跨子域,在Chrome浏览器下,使用download属性是可以 ...

  8. win10系统安装loadrunner11提示“为了对电脑进行保护 已经阻止此应用”的解决方案

    在执行loadrunner安装包中的setup.exe时会有如下提示: 解决方法:点击Win+R快捷键打开运行,输入“ gpedit.msc”按下回车键打开组策略编辑: 在左边选择[计算机配置]→[W ...

  9. oauth X-Frame-Options 跳转授权页面时,302重定向禁用iframe

    因为oauth/authorize响应头包含X-Frame-Options: DENY解决方案:openresty nginx 移除该属性,经测试生效 more_clear_headers X-Fra ...

  10. bzoj 1907: 树的路径覆盖【贪心+树形dp】

    我是在在做网络流最小路径覆盖的时候找到这道题的 然后发现是个贪心+树形dp \( f[i] \)表示在\( i \)为根的子树中最少有几条链,\( v[i] \) 表示在\( i \)为根的子树中\( ...