JSON数据:
1.通用的数据交互格式(前后端都可以识别解析该数据) |
2.本质:是个字符串,字符串里面数组、对象 |
3.格式要求 ①键名必须使用双引号,键值如果是字符串,也必须使用双引号 ②不能出现undefined 和函数 |
4.JSON方法 ? js数据转成json字符串 JSON.stringify0) ? json字符串转成js数据 JSON.parse0) |
哪些属于异步函数? | 异步函数会阻塞主线程吗? | 什么是回调函数? |
①定时器setTimeout | 异步函数的执行,由于是异步的,不会阻塞主线程代码的执行 | 把一个函数当成参数传递,不立即执行,将来特定的时机回头调用,这个函数就叫回调函数 |
②延时器setInterval | 主线程遇到异步函数,包给浏览器去处理 | |
③ajax | 此处的function()是回调函数 | |
④fs.readFile(读文件) | 一般异步操作,都会涉及到回调函数 | |
⑤事件处理函数 |
为什么要学习promise? | 异步函数 |
因为promise和回调函数息息相关 | 1.ajax |
是来处理异步的 | 2.定时器延时器 |
3.注册事件 |
回调函数有什么问题? |
1.回调函数的阅读性不好,跳来跳去的 |
2.回调不会立马执行。回头才调用执行,所以还要分析一下到底什么时候执行 |
2.回调函数如果有大量的嵌套可维护性差,形成回调地狱 |
回调地狱是什么? |
指维护回调层层嵌套的代码,就像在地狱一样 |
Promise有四个静态方法 | promise是什么? | promise.all(),参数是一个数组 | promise三种状态 |
分别是resolve() | 1、主要用于异步计算 | 1.await 可以获得多个promise 的返回结果 | 1.pending:在过程中还没有结果 |
reject() | 2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果 | 2. Promise.all 返回的也是promise,所以可以直接await Promise.all(); | 2.resolved:成功 |
all() | 3、可以在对象之间传递和操作promise,帮助我们处理队列 | 3.rejected:失败 | |
race() | promise默认的状态是 pending |