ES6学习知识笔记

走到哪里面试,都避免不了会es6,于是作为一个程序猿,还是决定学习下es6,自己学习能力很差,学的东西也很慢,学了许久,才有点头绪,行了话不多说,赶紧把笔记补上!

1.首先就是定义变量的写法,之前是var可以重复声明,现在有了let----块级变量定义不能重复声明,也就是在函数里面定义的话,就只能在函数里面用到,不是全局的话,就用不到,这样的好处是防止数据污染;const适合定义固定不变的,比如域名,地址什么的;

2.箭头函数--这个我开始以为好麻烦,好难,但是学过之后发现,就会讲师说的一样就是function的简写,

以前的写法 

let a=function(){}

箭头函数

let a=()=>{return a}

如果{}里面只有一个参数,{}可以省略

let a=()=>return a;

修正this,相对正常点

3.函数参数

一般写法是 function a(a,b,c,d)

现在可以写 function(a,b,...args)------(...args)代表剩余参数 但是只能作为最后一个参数 能收集 能扩展

let data=[12,5,8,9];

let arr=[...data,..data];扩展

4.解构赋值

比如定义一个变量  let a=10,b=2;

可以写为 let[a,b]=[10,2],左边什么类型,右边对应类型赋值即可

5.数组

数组在es6多了四个方法---

map、映射   一个对一个的  [1,6,5,4]可以映射为[一月,六月,五月,四月];

let result=Array.map(item=>数据)

比如 let data=[20,60,80,50]-----data.map(item=>item>60?'及格':'不及格');

reduce、汇总

let data=[20,60,80,50];

tmp--计算的结果   item--值,index--数组索引

data.reduce((tmp,item,index)=>{

   if(index!data.length-1){

      return tmp+item;第一个值加第二个值的和,继续的话 就是和加第三个的值.......

     }else{

 }

})

filter、过滤器----留一部分 删一部分

let data=[20,60,80,50];

data.filter(item=>item%3==0);//数据能被3整除的返回true

forEach、循环(迭代)

let data=[20,60,80,50];

data.forEach((item,index)=>{

  操作数据部分

})

6.字符串

多了2个新方法  startsWith  endsWith;

let data="sadhkjashdkj";

data.startWith('s') //判断字符串第一个是不是以s开头

data.endsWith('j')//判断字符串第一个是不是以j结尾

-------------可以用来判断邮箱、网址

字符串模板

以前字符串拼接的话就是 str='',str+='.........'

现在可以写为:str=`内容`  如果有变量值要插入 则用${变量名}插入即可

7.JSON

JSON对象

let json={a:12,b:5};---json写法

JSON.stringify(json)----变成字符串

let json="{"a":12,"b":23}"

标准写法  --只能用双引号  所有的名字必须有双引号包起来,不然会报错

JSON.parse(json)---变成json

JSON简写

json名字跟值(key和value)一样的时候可以只写一个   let json={a:a}===========let json={a}

8.promise

我们请求数据一般都是 异步 同步

异步:多个请求同时进行,代码会变得复杂;

同步:只能做一件事,代码简单;

二者各有千秋,所以就有了一个promise  消除异步,用同步的方法来操作代码

一般的写法:

resolve--成功   reject--失败

let p=new Promise(function(resolve,reject){

比如这里请求

$.ajax({

url:'.........',

dataType:'json',

success(data)=>{

  resolve(data)

},error(error)=>{

  reject(error)

}

})

})

调用的话:p.then(function(){},---成功函数function(){}---失败函数)

如果是多个请求同时进行的话,可以使用Promise.all([请求1,请求2]).then()

可以对promise进行封装

// function greatePromist(url){
// return new Promise(function(resolve,reject){
// $.ajax(url,{
// dataType:'json',//服务器返回json格式数据
// type:'post',//HTTP请求类型
// timeout:10000,//超时时间设置为10秒;
// success:function(data){
// resolve(data);//成功返回
// },
// error:function(error){
// reject(error);//失败返回
// }
// });
// })
// }

然后调用就是 Promise.all([请求1,请求2]).then()

jquery其实本身就封装的有promise  版本在3.多以上

所以我们可以 Promise.all([$.ajax({url1,dataType:'json'}),$.ajax({url2,dataType:'json'}),]).then();

9.generator生成器

适合逻辑性的请求,执行到一半可以暂停的东西

详细的 https://www.liaoxuefeng.com/wiki/1022910821149312/1023024381818112

到了es7的时候这个方法可以用async await代替,具体的可以先百度看看

猜你喜欢

转载自www.cnblogs.com/aotuboke/p/11096158.html