Genzhen
Genzhen
**答案** node =11:1 7 6 8 2 4 3 5 9 11 10 12 **解析** - 宏任务和微任务 - 宏任务:macrotask,包括setTimeout、setInerVal、setImmediate(node独有)、requestAnimationFrame(浏览器独有)、I/O、UI rendering(浏览器独有) - 微任务:microtask,包括process.nextTick(Node独有)、Promise.then()、Object.observe、MutationObserver - Promise构造函数中的代码是同步执行的,new Promise()构造函数中的代码是同步代码,并不是微任务 - Node.js中的EventLoop执行宏队列的回调任务有**6个阶段** - 1.timers阶段:这个阶段执行setTimeout和setInterval预定的callback -...
**答案** 12 **解析** arguments 中 c 的值还是 1 不会变成 10, 因为 a 函数加了默认值,就按 ES 的方式解析,ES6 是有块级作用域的,所以 c 的值是不会改变的
> c会变成10啊,解析的什么东东 @zhengcaifeng 是arguments 中 c 的值,function a(a, b, c = 3) 这里的c,因为 a 函数加了默认值,所以就按 ES 的方式解析,函数中的参数就不会变了 ```js function side(arr) { arr[0] = arr[2]; } function a(a, b, c =...
```js function mergeSort(arr) { const len = arr.length // 处理边界情况 if(len
```js /** * 解题思路: * 双指针 从头到尾比较 两个数组的第一个值,根据值的大小依次插入到新的数组中 * 空间复杂度:O(m + n) * 时间复杂度:O(m + n) * @param {Array} arr1 * @param {Array} arr2 */ function merge(arr1, arr2){ var result=[];...
```js // 方法1:使用concat const flatten1 = (arr) => { while (arr.some((item) => Array.isArray(item))) { arr = [].concat(...arr); } return arr; }; // 方法2:使用reduce const flatten2 = (arr) => arr.reduce( (acc,...
1)Promise基本特性 - 1、Promise有三种状态:pending(进行中)、fulfilled(已成功)、rejected(已失败) - 2、Promise对象接受一个回调函数作为参数, 该回调函数接受两个参数,分别是成功时的回调resolve和失败时的回调reject;另外resolve的参数除了正常值以外, 还可能是一个Promise对象的实例;reject的参数通常是一个Error对象的实例。 - 3、then方法返回一个新的Promise实例,并接收两个参数onResolved(fulfilled状态的回调);onRejected(rejected状态的回调,该参数可选) - 4、catch方法返回一个新的Promise实例 - 5、finally方法不管Promise状态如何都会执行,该方法的回调函数不接受任何参数 - 6、Promise.all()方法将多个多个Promise实例,包装成一个新的Promise实例,该方法接受一个由Promise对象组成的数组作为参数(Promise.all()方法的参数可以不是数组,但必须具有Iterator接口,且返回的每个成员都是Promise实例),注意参数中只要有一个实例触发catch方法,都会触发Promise.all()方法返回的新的实例的catch方法,如果参数中的某个实例本身调用了catch方法,将不会触发Promise.all()方法返回的新实例的catch方法 - 7、Promise.race()方法的参数与Promise.all方法一样,参数中的实例只要有一个率先改变状态就会将该实例的状态传给Promise.race()方法,并将返回值作为Promise.race()方法产生的Promise实例的返回值 - 8、Promise.resolve()将现有对象转为Promise对象,如果该方法的参数为一个Promise对象,Promise.resolve()将不做任何处理;如果参数thenable对象(即具有then方法),Promise.resolve()将该对象转为Promise对象并立即执行then方法;如果参数是一个原始值,或者是一个不具有then方法的对象,则Promise.resolve方法返回一个新的Promise对象,状态为fulfilled,其参数将会作为then方法中onResolved回调函数的参数,如果Promise.resolve方法不带参数,会直接返回一个fulfilled状态的 Promise 对象。需要注意的是,立即resolve()的 Promise 对象,是在本轮“事件循环”(event loop)的结束时执行,而不是在下一轮“事件循环”的开始时。 - 9、Promise.reject()同样返回一个新的Promise对象,状态为rejected,无论传入任何参数都将作为reject()的参数 2)Promise优点 - ①统一异步 API...
```js /** * 抽象表达 * Promise是 js 进行异步编辑的新的解决方案(旧的方式:纯回调的形式) * 具体表达 * 1 从语法上来说Promise 是一个构造函数 * 2 从功能上来说promise 对象用来封装一个异步操作并可以获取其结果 * 状态改变 * pending 变为 resolved * pending rejected * 一个promise 对象只能改变一次...
> 怎样才能像你们一样优秀 保持学习动力,不断积累经验💪
> 每日一题会在下午四点在交流群集中讨论,五点 Github、交流群同步更新答案 ### 一、哪些方法会触发 react 重新渲染? #### 1.`setState()` 方法被调用 setState 是 React 中最常用的命令,通常情况下,执行 setState 会触发 render。但是这里有个点值得关注,执行 setState 的时候一定会重新渲染吗? 答案是不一定。当 setState 传入 null 的时候,并不会触发 render。 ```js class App extends React.Component...