ES6的高阶

前言

提示:ECMAScript6新的javascript标准:


提示:以下是本篇文章正文内容,下面案例可供参考

一、变量声明

1.var

2.let

	01 let与var基本一致,用作变量声明
	02 let 在一对括号{}中形成局部作用域
	03 let声明的变量不会变量提升
	04 let不能重复声明变量(同一作用域)

3.const

	01 与let一致(局部,不提升,不能重复声明)
	02 声明必须赋值
	03 赋值不能修改(值类型)
	04 建议大写

二.数组的解构

01 数组解构:把数组解析为单个变量
02 通过逗号跳过
03 ...接收剩余值
04 可以给默认值
05 快速交换变量

三.module模块

1.导出

i.导出默认

function format(date){}
export defaut format

export default function format(date){}

ii.导出

export function reverse(){}

iii.导出变量

export const PRICE = 500;

iv.先声明再导出

var name = “mumu”;
function say(){
console.log("我的价格是"+PRICE)
}
export {name,say}

2.导入

1.导入
	<script type="module">
2.导入默认
      import format from './相对路径'
	// format可以和导出的时候不一致
3.导入
			import {reverse} from './相对路径'
			// reverse要和源文件方法一致
4.导入别名
			impot {reverse as r} rom ’./相对路径‘
5. 默认和普通方法是一个文件
			import format ,{reverse as r,PRICE,name,say} from ’./相对路径‘
6.导入所有
			import * as  utitls from ’文件地址‘
			utils.reverse()
7.默认导出方法访问
			utils.default();

四.类

1.typeof class

结果是 Function
类的本质是函数

2.class Block{

}

3.构造函数

	constructor(){}
	实例化的时候  new关键字调用的就是构造函数

4.super()

			调用父类的构造函数

5.extends

			继承父类的方法

6.static 类的静态属性和方法

			类的this指向的是它的实例(也就是new出来的对象)

五.新增数据类型

1.set 不重复的数组

		add 添加
		delete删除
		clear清空
		size大小
		has检测
		[...new Set(arr)]

2.map任意键的对象

		set(key,value) 设置
		get(key) 获取
		delete删除
		size大小
		clear清空

3.weakSet

		值都是引用类型的set

4.weakMap

			键都是引用类型

5.symbol唯一符合

			(对象的键)

六.迭代类型

1.可以for of遍历的对象都是可迭代对象

			String字符串
			Array数组
			Set 集合
			Map 图

for(let v of myset)
for(let k of myArr.keys())
for(let v of myArr.values())
for(let [k,v] of myArr.entries())

七.Promise承诺

1.
var p = new Promise((resolve,reject)=>{
// 异步操作
resolve(data)
reject(err)
})
2.有三个状态状态变化就不可逆
	pendding
	resolved
	rejected
3.实例p
1.	.then(res=>{})
回调函数获取resolved 返回的结果
返回一个新的promise实例
		
2.	.catch(err=>{})
获取rejected的原因
4.解决
	1. 异步操作
	2. 回调地狱(层级过深)
5.all全部
	所有promsie都resolve,all才执行resolve
6.race 赛跑
	(返回最先resolve结果)
	拿到最到的resolve结果

八.同步和异步

1.同步是按顺序从上至下阻塞式执行代码
(上一行代码不执行完毕,下行是不会执行)
2.异步是先执行主线程的代码,再执行其他线程(非阻塞式)
3.实现异步的方式:
				回调函数
				事件响应
				订阅发布模式
				Promise
				sync 和await

九.async与await

1.async装饰的函数,返回的是一个promise对象
返回的结果是resolved 的结果
2.await 用来等待异步的resolve结果 只能出现在async装饰的	函数中
async function doit(){
   var m1 = await say("你真好看",2000)
   var m2 = await say("像春天花一样",3000)
  return m1+m2;
}
doit()
.then(res=>{})
.catch(err=>{})

十.generator生成器

1.就是在函数前面添加个 *
function *range(min,max){
   for(var i=min,i<max;i++){
      yield i;
   }
}
2.生成器执行的结果是 一个迭代器
3.

var iter = range(1,10)

4.

迭代器通过next方法返回一个对象,对象的value是 yield生成的结果 在生成器里面 遇到yield就停止等待下一次next调用

5.

{value:1,done:false}
....
{value:undefined,done:true}

6.可以通过for 来遍历迭代器
for(v of range(1,100)){
    console.log(v)
}
7.String,Array,Set,Map的迭代器

arr[Symbol.iterator]()

十一.Object.defineProperty

Object.defineProperty(obj,props,{
  set(v){ //设置},
 get(){//获取},

})
//可以定义对象的某个属性
# 十二.proxy代理对象
	1.target目标对象
	2.handle 处理器
```javascript
		set(target,property,value){
   //拦截set
}
		get(target,property){
  // 拦截set
  return target[property]
}
var proxy = new Proxy(target,handel)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值