1.Promise简介
名称 | 描述 |
---|---|
Promise | Promise是异步操作的一种解决方式,可以解决回调地域的问题使用时,需要实例化:new Promise(()=>{}) |
2.Promise的状态
名称 | 描述 |
---|---|
pending | Promise的未完成状态 |
fulfilled | Promise的成功状态 |
rejected | Promise的失败状态 |
3、Promise的方法
名称 | 描述 |
---|---|
resolve | 调用该方法,Promise的状态会由pending变成fulfilled,表示成功示例: new Promise((resolve,reject)=>[resolve()3) |
reject | 调用该方法,Promise的状态会由pending变成rejected,表示失败示例: new Promise((resolve,reject)=>[ reject()) |
then | 1、有两个回调函数;当Promise状态变化时,会执行对应的回调函数:Promise状态由pending->fulfilled时,执行then的第一个回调函数 Promise状态由pending:>rejected时,执行then的第二个回调函数 2、then方法执行后,会返回一个新的Promise对象。默认返回的是成功状态的Promise对象 |
catch | 1、用来处理reiected (失败)状态 2、建议在Promise对象后面写上catch方法,这样可以处理Promise内部发生的错误 |
finally | 当Promise状态发生变化时,无论状态如何变化,都会执行(了解即可) |
4、Promise的简写形式
名称 | 描述 |
---|---|
Promise.resolve() | 成功状态Promise的一种简写形式,等价于(了解即可) new Promise(resolve =>{resolve()) |
Promise.reject() | 失败状态Promise的简写形式,等价于 (了解即可):new Promise(reject =>[ reject() }) |
5、Promise的其他方法
名称 | 描述 |
---|---|
Promise.all() | 1、关注多个Promise对象的状态变化。 2、传入多个Promise实例,会返回一个新的Promise实例。 3、Promise.all0)的状态变化与传入的多个Promise实例对象的状态有关:多个实例的状态都变成resolved,Promise.all0)的最终状态才会变成resolved只要有一个实例的状态变成rejected,Promise.all()的最终状态就变成rejected。 |
Promise.race() | 、关注多个Promise对象的状态变化。 2、传入多个Promise实例,会返回一个新的Promise实例。 3、Promise.race()的状态取决于第一个完成的Promise实例对象如果第一个完成的实例成功了,Promise.race()就是成功的;如果第一个完成的实例失败了,Promise.race()就是失败的 (了解即可)。 |
Promise.allSettled() | 1、关注多个Promise对象的状态变化。 2、传入多个Promise实例,会返回一个新的Promise实例。 3、Promise.allSettled()的状态与传入的Promise实例状态无关。它永远都会执行成功的回调函数。并且记录各个Promise实例的表现 (了解即可)。 |
6、class类
名称 | 描述 |
---|---|
class | 定义类的关键字 |
constructor | class中的构造方法,可以省略不写; 实例化时,构造函数中的代码会执行,常用来初始化。 |
new | 实例化构造函数或者类的关键字 |
this | 在constructor,this指向实例 在静态方法中,this指向类 |
static | 声明静态属性和静态方法,其中定义静态方法还处于提案中,了解即可 |
extends | 继承,子类继承父类时,可以使用该关键字。 |
super | 作为函数使用: 1、继承时,在子类的constructor中,super指代父类的构造函数 super 2、作为函数使用时,super虽然代表父类的构造方法,但是内部的this指向子类的实例 作为对象使用: 1、在子类的构造方法(constructor)或一般方法中使用,super代表父类的原型对象定义在父类实例上的属性或方法,无法通过super调用;通过super调用父类的方法时,方法内部的this指向当前的子类的实例 2、在静态方法中使用,super指向父类。通过super调用父类的方法时,方法内部的this指向当前的子类,而不是子类的实例 |
7、module模块化
名称 | 描述 |
---|---|
module | 模块系统。 将代码按照功能分割成不同的模块,然后按模块开发;开发完成后,再用module关联各个模块形成一个完整的项目。 将script标签的type属性,设置成module,可以加载模块。 例1:引入外部文件<script src=模块路径”type="module"></script>例2:直接在script标签里书写代码<script> type="module">// 模央代码</script> |
8、module的导入导出
名称 | 描述 |
---|---|
import | 关键字,用来导入模块内的内容: 1、使用export default和export 导出的内容可以使用import关键字导入 2、一个模块没有导出,也可以将其导入;此时被导入的代码都会执行一遍,也仅会执行一遍3、如果一个模块中,既有export default导出默认值,又有export导出其他值,可以使用import同时导入。导入时,使用export default导出的变量要写在使用export导出的变量的前面4、import关键字具有提升效果。它导入的内容,会提升到整个模块顶部,率先执行。 |
export default | 导出默认值: 一个模块只能有一个export default; 导入时语法是:import变量名from“路径 |
export | 导出多个内容; 一个模块可以有多个export; 导入时语法是:import[变量名}from"路径 |
as | 给模块起别名; 导出时,可以起别名;语法: export 变量名as 别名) 导入时,也可以起别名;语法: import[变量名as别名from"路径" |
* | 整体导入; 语法: import*as别名from"路径" |
9、module的注意事项
名称 | 描述 |
---|---|
this | 模块顶层作用域中的this指向undefined |
import() | import方法,它与关键字import不一样,它可以按条件导入 (了解即可) |
10、相关指令
Node.js
Node.js是一个平台或工具,它上面可以运行后端代码。Babel等依赖包,需要运行在这个平台上。
名称 | 描述 |
---|---|
npm | node包管理工具。可以利用npm初始化项目、安装项目所需要的插件() |
node -V | 查看node的版本号 |
npm -V | 查看npm的版本号 |
npm init | 初始化项目 |
npm install | 安装依赖包。 1、执行npminstall,可以把packageison中记录的依赖包,都下载下来2、可以使用该指令下载某个具体的依赖包。指令如下: |
--save-dev | 安装的包是开发依赖,该包仅在开发阶段使用 |
npm config set registry https://registry.npm.taobao.org | 将下载源切换成国内的。使用npm下载时,包源在国外,下载速度可能会很慢。可以使用该指令,可以将包源切换成国内的,这样可以提升下载速度。 该指令只需执行一遍。 |