ES6相关特性

学习ES6

js语言的下一代标准
let和const,模板字符串,增强函数,扩展功能,解构赋值,symbol,迭代器,promise对象,proxy对象,async,类class,模块化

let和coust

原来用var。let需要先定义再使用,没有变量提升,是一个块作用域{},不能重复声明。
const也是块作用域,声明常量,一旦被声明不允许被修改,如果是对象的话,可以修改对象的属性。

模版字符串

let htmlstr = 你好:${name},欢迎 ;
用反引号(tab键上面)包起来,然后用户$占位符显示变量。

函数增强

  1. 给默认值function(a=10,b=20){} ;然后就可以在调用的地方少传参数;默认值也可以是一个调用函数
  2. 剩余运算符,不固定的参数长度:functon pick(obj,…keys){}; keys就是一个参数数组。…叫剩余运算符
  3. 扩展运算符…;调用的时候解包 pick(…arr);
  4. 箭头函数:(a,b)=> {};如果只有一个参数 val=>{},如果函数体就一个表达式,直接 var=> (val+1) ;箭头函数没有this,arguments。
var foo  = 1;

箭头函数没有this,它的this是从外面找的。类的方法的定义不要用箭头函数,不然没this。

解构赋值

针对数组和对象来进行操作;解构赋值是对赋值操作的一种扩展

let node = {
	type: 'iden',
	name:'foo'
}
let {type,name} = node;//就是把对象里头的属性赋值出来。这个名称必须和对象里面的属性一致。

对象的扩展功能

Object.is(obj1,obj2) 判断两个对象是否相等
Object.assign(obj1,obj2,obj3…) 对象的属性合并到第一个obj并返回

数据类型

1 Symbol 独一无二的,const name = Symbol(‘name’) 不等于const name2 = Symbol(‘name’)
2 Set 集合 无重复值的有序列表 new Set(); add,delete, has
3 Map

数组增强

Array.from(arguments) 将伪数组转成真数组;等价于[…arguments]
Array.of(1,2,3) 合并成一个数组
[1,2,3,7.8.9].copywithin(0,3) 数组内容替换
find(function(){}) 查数据,findIndex 查找第一个符合条件的索引
entries(), keys(),values() ,includes 代替原来的indexOf用于查是否包含

迭代器

迭代器的next方法获取下一个,done判断是否结束

异步的三种增强

生成器generator:用yield挂起,用next走一步。实现一个函数分段阻塞执行。
promise 承诺,三种状态:pending,resolved,rejected;Promise.all[p1,p2,p3],Promise.race[p1,p2] 都执行成功,谁先成功就谁。
async和await。异常rejected用try catch去抓

模块化

引入经历了src,Common.js, AMD;一个文件就是一个模块

export const name = ‘张三’ 这种可以写多个 import {name} from xxx.js
export default xxx ;这种只能写一个 import xxx from xxx.js
import * as f from xxx.js 是把所有的都接收过来;上面两种可以混写import xxx,{name} from xxx.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值