与或非实习day21

 

今天是Es6的一天;

 

1.let和const命令

  作用域,命名规则,一般不要乱重复;变量提升;要注意的就是这三个地方

  用法还是一样的,只是说应该更注意作用域和变量的声明

  1.函数作用域(var)和块级作用域(let,const)就是{} if for 这些{}都是块级作用域

  2.var是可重复定义的,let 和 const 是不可以的。 然后let是可以重新赋值的,而const一般声明常量的。所以不能重新赋值的

  3.引用类型的值,看来还得重新看一下数据类型了 
  4.setTimeout(),是异步的操作;就比如在一个for循环中防一个一秒之后才执行的函数。那么for循环肯定会先执行完成。然后这个setTimeout也会执行多次的

  5.let解决for循环中值的问题的。  

  6.最后我怎么用那个进行变量声明呢?尽量使用const let 吧  在es6中少用var!var 会造成,变量提升,命名重复,变量声明赋值覆盖的问题

2.箭头函数

  1.好处:不绑定this,隐式返回(只有一个返回值的时候)它是匿名函数;匿名函数通常会把值给一个变量

  2.删掉function关键字,多个参数逗号分隔

  3.内置函数的this指向是window,而方法的指向是这个实例;当我们使用的箭头函数就不用考虑这个问题了

  4.然后呢有一个经常的解决方式就是在他们之前定义let that = this; 然后引用这个that,然后现在我们只需要引用箭头函数就可以忽略这个问题  改变this值的方式

  5.在箭头函数中,this会指向父级的作用域

  6.函数参数的默认值,意思是当为undefined的时候,就用默认的值   a = a || 3;

  7.es6中提供的参数默认值:(a=8,b=8) 调用的时候可以给不写就是默认的,如果写了b,但没写a。那么要写上a=undefined;

  8.那些情况写不允许使用箭头函数的,箭头函数式不会执行绑定的。如:var bul = getElementById(“id”) bul.addEventListener('click',()=>{this.classList.remove})

    在这里这个this就不是bul这个对象了。用箭头函数,就是说我不想用他自己带的this的时候,就用箭头函数,这样这个箭头函数的this就会指向外边。使用对象就会涉及这个this,所以使用箭头函数的时候要注意一点  

 

这里的两个function都不允许

 

 

 这个是第一个函数的时候我们需要this,所以不能使用箭头函数;第二个是,我们不需要使用定时器自己的this。所以可时候箭头函数改变this的指向,让它指向外部

 

这个Array.from()是把这个变成一个真的数组()

Array.from() 方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。

 

 什么时候不要使用箭头函数:记住这两种方式就好了,因为目前比较的能理解这两种方式吧:1.创建实例的时候  2.想真的时候this的时候,就是想时候绑定的对象的时候

 

3.字符串模板(也就是字符串组合)

  1.要用反引号扩起来,然后变量要用${}。  

4.新增的字符串方法

  .startsWith()

  .endsWith()

  .includes()

  .repeat()(字符串重复的次数)

5.对象解构

  回滚默认值,对象解构:能快速的从对象中获取到我们的想要的属性和值,然后也可以给变量重名,和给默认值。

  

 

 6.数组的解构

  获取数组中多个值的方式

  1.解构的时候数组用的[],对象用的是{}

  2.交换变量的值

7.提供的循环方式

  循环一个数组的几种方式;

  1.用for循环,但是比较繁琐。2.然后是forEach()但是这个方法不能只用break就是不能终止 3.for(let index in fruits)(枚举法,会把所有的都打印出来)

  都有缺陷,那么es6站出来了,提供了新的循环

  for  in   改成 for  of     for (let fruits of fruits){}  这个直接获得值,而不是像for  in  获取到的是index的值

  所以以后是要使用这个for of 循环吗?

8.Promise简介(异步编程的承诺,反馈)

  Promise 出现的原因:当我有一个需求,这个需求就是我先发送一个请求,然后以这个请求的数据为基础,在发送一个请求

            然后现在的问题是我后面的请求的先发送了。所以会是undefined。这个ajax返回的循序是不定的

            所以可以放在第一个的回调函数里面;那问题来了,那很多个请求呢!怎么办。回调函数呢?是不是回调地狱

  Promise是什么:就相当于一种承诺,不管发什么,我都会给你一个承诺。就是会给你一个反馈,你这个拿这个反馈去做下一步

  用这个axios操作这个Promise。监听事件  .then();等回馈之后执行下一个

 

const users = axios.get('https://api.github.com/users');//会返回一个Promise
users.then((res) => {
console.log(res);
});//事件监听,当他成功了.我们应该打印他的值

 

 

 9.编写自己的Promise

  axios就是Promise自己的库呀

   

 

 10.promise的实例(将关联的数据整合,然后返回)

  

 

posted @ 2019-11-18 11:08  AJking  阅读(145)  评论(0编辑  收藏  举报