ES6学习

ES6学习笔记(三)

该学习笔记源于B站视频https://www.bilibili.com/video/av47304735?from=search&seid=16810589178466991647

一、promise(重点)
1、为了解决回调顺序不确定性和回调地狱,使用promise机制,调用axios库。
eg:

let username;
const usersPromise=axios.get('https://api.github.com/users');
usersPromise .then(reponse=>{
username=reponse.data[0].login;
return axios.get(`https://api.github.com/users/${username}/repos`);
});
.then(reponse=>{
console.log(reponse.data);
});
.catch(err=>{
console.error(err);
});

2、创建自己的promise
eg:

const p=new Promise((reslove,reject)=>{
reslove('yeah!')
});
p.then(data=>{console.log(data)});

3、遇到多个promise时使用promise.all()方法,还可以使用promise. race()方法(由第一个promise决定)。

二、symbol
1、symbol防止属性重名,对象属性名是symbol类型的话,是不能遍历的,也就是说用for in循环是不能获取属性名的,只能通过Object.getOwnPropertySymbols()获取。

三、ESLint
1、ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的javascript代码检测工具。
2、ESLint插件地址https://github.com/dustinspecker/awesome-eslint
同时在ESLint配置文件中配置,就可以更有效的使用。

四、ES6模块
1、NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
a、允许用户从NPM服务器下载别人编写的第三方包到本地使用。
b、允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
c、允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
2、import和export
a、默认导出,export default导出,主要是用于整个模块比较主要的东西,可以import任意名字命名。
b、命名导出,export 导出的变量名,主要用于其他地方可能用到的比较琐碎、零散的东西,import必须用导出的变量名。
3、使用SystemJS可以打包JS模块,可以引入第三方模块和本地模块,缺点:网速不好的话会有点慢,适合测试和写一些小东西。

五、babel
1、作用:将ES6代码转换成ES5代码,使得代码可以在浏览器上跑起来.
2、使用polyfill把ES6的特性完善到浏览器中。

六、原型继承
1、如果把共用方法都写在构造函数里的话,每次新生成实例的时候都会执行这段代码,会占用内存,所以使用原型对象,在console控制板可以在__prota__看到。
eg:

User.prototype.info=function(){
console.log(`Hi,I'm ${this.name}`);
}

七、类
1、类的定义和函数定义相似,类就是一种特殊的函数,函数存在函数提升,但是类不行,类的定义中不用逗号。
2、静态方法,只能在类上面调用,而不能在实例上调用。
eg:

class User{
constructor(name,email){
this.name=name;
this.email=email;
}
static description(){
console.log(`I'm a user`);
}
set github(value){
 this.githubName=value;
}
get github(){
return `https://github.com/${this.githubName}`;
}
}

3、只能通过new关键字来调用类。
4、ES6中用super()方法在子类的构造函数当中来调用父类的构造函数,如果在子类上定义的方法和基类上同名的话,会调用子类的方法。

class Dog extends Animal{}

5、类可以用来扩展内建对象。

八、遍历器Iterator
1、Iterator.next()方法会返回相应元素的值,遍历完所有元素后,value=undefined,done=true;
a、数组

colors.entries()   //或者colors.keys()、colors.values()
const iterator=colors.entries()
iterator.next()

colors.values()

Array.prototype.values=function{
    let i=0;
    let items=this;
    return{
    next(){
    const done=i>=items.length;
    const value=done?undefined:items[i++];
    return{
      value,
      done
    }
  }
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值