es6基本属性

1:const与let: const一般定义常量,不可再次修改定义的值,但是对于数组,对象这些引用类型是可以修改其属性的。与var的区别在于使用有变量提升,与块级作用域,且不会污染全局变量。let 用于定义变量,let与const都是不可以重复命名的,且没有了变量提升,如果在命名前调用会报错处理

2: 模板字符串 :使用``定义一个字符串 使用${}占位,代表一个变量,`你好${name}`,就不用去拼接字符串了

3:增强函数

1:外部动态传入函数参数个数,如果有的参数未传入时,该参数有默认值

function add(a,b=20){

console.log(a+b);

}

2:关于函数arguments属性,存储的是传入的参数,(与函数本体的参数个数是不相关的)存储的是函数被调用时传入的参数,对于剩余参数方法的使用

function add(a,...str)

{

}

...str表示对于传入的第一个参数外其他的参数会被包进数组str中

4:扩展运算符...的使用,一般是对于数组来说的...可以把数组里面的值进行分解。...[1,2,3,4]分解后1,2,3,4对于一些场景比较适用,还有对于箭头函数的使用,函数闭包 ,箭头函数的简写。箭头函数的注意事项,箭头函数是没有作用域链的,this的指向问题,this只能向上一层寻找。

5:结构赋值,用于对js对象和数组的结构

//对象的完全结构 let obj={name:'李华',age:'18岁'}

const {name,age}=obj;

const name1=obj.name;

//数组的完全结构 let arry=[1,2,[3,4],5];

let [a,b,[c,d],e]=arry

可以不完全结构,对于对象的结构如果只取一个参数,而又要保存剩余的参数的话可以使用...剩余运算符,那么剩余的属性会被包装成一个对象。

扩展的对象功能,常用的Object.assign()浅拷贝,可以将多个对象合并为一个对象

对于symbol的使用,表示独一无二的值,可以用来定义对象的私有属性。

6:对于Set与Map的使用,Set集合,里面的值是不会重复的,这是对于基本数据类型而言,如果存储的是对象或数组,集合的话,是没法判断值有没有重复的,可能底层是判断的哈希码,set里面的对象是不能被释放的,主要的方法就是add,delete,has(用来校验set里面是否有某个值)。Set初始构造时貌似只能接收数组作为参数。

将Set转为数组,可以在 [ ] 用...剩余运算符结构Set

Map:键值对 set(key,value)初始化Map传入的是二维数组

let map=new Map([[1,'2']]);

其他方法差不多与Set相似

7:数组,将伪数组转换为数组,可以使用扩展符... 也可以使用

Array.from(arry,(ele)=>{//ele代表伪数组每一项的值,可以在匿名函数里改变 })此方法可以接收两个参数 一个是伪数组,另一个是匿名函数。用来对数组每一项的处理

Array.of({},2,3,4,2,[])将传入的参数转换为一个数组

array.find(()=>{})接收的参数表示数组的每一项 函数体列书写条件,只有满足条件的第一个值会被返回,findIndex()则返回的是满足条件第一个值的索引

8:代器,迭代器 一个接口 用于快捷的访问数据 ,获取数组中的迭代器 [].[Symbol.interator]

迭代器的next()方法返回一个数据对象 对象中的属性done为布尔值,为true表示已经到了末尾了,

相当于数据库的游标

ES6提供的异步编程解决方法 promise Generator 与 async

9:生成器 Generator ,参考dva中的异步处理 ,本质是用来解决异步问题的,他所返回的是一个迭代器

基本写法

function *myGeneretor()

{

console.log('a');

yield my()

console.log('b');

yield my()

console.log('c')

yield my()

}

function my()

{

console.log('f')

}

let inter =myGeneretor()//返回的是一个迭代器

使用next控制函数内部执行 每一次调用next会执行到函数内部的yield处 一直往下执行

10:promise

基本写法自己可以封装promise函数

function myPromise(data)

{

//data外部传入的参数 自己进行定义

return new Promise((resolved,rejected)=>{

//进行异步处理 自己的处理逻辑

//需要返回 resolved表示成功 rejected失败

//根据自己的逻辑返回 成功或者失败

resolved('成功')

})

}//闭包处理

myPromise().then(

(val)=>{ console.log(val)},

(val)=>{//可以接收两个参数 第一个是成功处理,第二个人是失败处理}

)

三个状态 成功resolved 失败rejected 进行中pending

可以理解umi中的异步处理

Promise.all([])方法接收的是一个promise对象数组,是promise原型方法 返回的是一个promise对象,并行执行,then()方法表示只有promise对象数组中的所有对象都成功了才是成功,一旦有一个失败了就会执行失败方法

race()方法 设置请求超时,和超时后的处理

原型方法 rejected resolved (object)可以直接把一个对象转为promise对象 所返回的也是转换的object

11:async await的使用,相当于Generator 的语法糖

async标注在函数之前 这个函数返回的便是一个promise对象,await 等待,在函数中如果需要处理异步逻辑时 标注在表达式之前,只有该表达式完成后函数里面才会往下面进行执行 可以参考umi框架中对于异步请求函数的封装

基本写法

function fn()

{

//异步逻辑

return data;

}

async function myfunction() {

let data=await fn() //1+2//()=>{ setTimeout(()=>{return 200},2000)}//异步处理

return data;

}

myfunction().then((val) => {

console.log(`获得的的值${val}`)

})

12:模块化,实际用法参考react umi ,有两个关键字 import export 还有export default默认抛出

import 引入 如果引入的是一个模块的默认抛出 就不用结构赋值了 如果引入一个模块的抛出使用

import {} from '模块路径'

一个模块只有一默认抛出,可以抛出多个值

后序深度学习es6:https://es6.ruanyifeng.com/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值