小白快速入门ES6

ES6

说明
ECMAScript6新的javascript标准

变量的声明

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

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

数组的解构

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

对象简写
字符串
遍历for of
去空白
trim两端
trimLeft左侧
trimRight右侧

补齐
    padStart(len,symbol)
    padEnd(len,symbol)

查找
    includes是否包含
    startsWith以xxx开头
    endsWith以xxx结尾

数组高阶

sort排序
    ES6新增
    find查找符合条件元素
    findIndex查找符合条件的元素下标

forEach遍历
    forEach(func(item,index,self))
    item当前遍历的元素
    index当前的下标
    self被遍历的数组

filter过滤
map映射
reduce累计
    reduce(function(a,b))
    a上一次返回的结果
    b当前遍历的元素

some有一个
every每一个

对象新增方法

Object.assign()合并并复制
Object.keys()键的集合
Object.values()值得集合
Object.create()创建新对象
    创建一个新的对象并以源对象作为prototype原型

对象的简写
如果对象的键和变量名一致可以简写
对象函数可以省略function
对象的属性可以动态拼接

函数

箭头函数
    箭头函数:函数的简写
    =>左侧是参数 =>右侧是执行语句也是返回值
    如果不是一个,需要添加()
    如果有多行语句用{}
    如果需要返回对象用({})
    箭头函数的this指向的是上一层函数调用者
    不能作为构造函数

modul模块

export 导出 default 默认
module模块 import 导入 from 从 as别名
导出:
    默认:function format(date) {return date.toLocaleString();};export default format;
    export function reverse(str){}
    导出变量:export const PRISE = 500;
    先声明再导出
    export {name,say}

导入:<script type="module">
    import format from ‘相对路径’(format可以和导出的时候不一致)
    import {reverse} from ‘相对路径’(reverse要和源文件方法一致)
    导入所有
        import * as utils from '相对路径';
        utils.say();
        utils.reverse("我喜欢你")
        utils.default(new Date())


导入别名
    import {reverse  as  r} from ‘相对路径’

默认和普通方法是一个文件
    import format, { reverse as c, PRISE ,name ,say } from '相对路径';

ES6新增数据类型

set集合不重复的数组(add添加,delete删除,clear清空,size大小,has检测)[]
map图 键名可以说任何类型的对象     set(key.value)设置,get(key)获取,delete删除,size大小,clear清空
weakSet值都是引用类型的set
weakMap键都是引用类型
symbol唯一符合(对象的键)

typeof   class:结果是  Function类的本质就是函数
语法:class Block{
}
构造函数:   constructor(){}  实例化的时候,new关键字调用的就是构造函数
super():调用父类的构造函数
extends:继承父类的方法
static:类的静态属性he方法
类的this指向的是它的实例(也就是new出来的对象)

迭代类型

可以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.entrise())

Promise承诺

var p =new Promise((resolve,reject)=>{
异步操作
resolve(date)
reject(err)
})
有三个状态,状态变化就不可逆
    pendding
    resolved
    rejected

实例p
    .then(res=>{})回调函数获取resolved返回的结果返回一个新的promise实例
    .catch(err=>{})获取rejectde的原因

解决:1.异步操作  2.回调地狱(层级过深)
all全部:所有的promise都resolve,all才执行resolve
race赛跑(返回最先resolve结果)拿到取到resolve

同步和异步

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

async与await

async装饰的函数,返回的是一个promise对象返回的结果是resolve结果
await用来等待异步的resolve结果只能出现在async装饰的函数中
doit()
.then(res=>{})    
.catch(err=>{})

generator生成器
就是在函数前面添加个*
生成器执行的结果是一个迭代器
var iter=range(1,10)
迭代器通过next方法返回一个对象,对象的value是yield生成的结果在生成器里面遇到yield就停止等待一下next调用

Object.defineProperty
proxy代理对象
target目标对象
handle处理器
var proxy=new Proxy(target,handle)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值