Genzhen

Results 68 comments of Genzhen

```js function foo(arr) { let AMOUNT = arr.length if (!AMOUNT) return false; if (AMOUNT === 3) return arr; arr.sort((a, b) => a - b); let total = 0; let maxNumberTotal...

> // 若总和不能被 3 整除,说明不能分成相等的 3 个部分,然后return了,题目不是说尽量相等嘛??? 答题已更新哈

> // 若总和不能被 3 整除,说明不能分成相等的 3 个部分,然后return了,题目不是说尽量相等嘛??? 感谢指出问题,答案已更新哈

> @Genzhen > // 在某些情况下获取的不是最优解 > // 输入 [1,2,3,4,5,6,7,8] > // 结果是: [[8, 3, 2], [6, 5, 1], [7, 4]] 三个数组项的和分别为 13,12,11 > // 最优解应该为 [[8, 4], [6, 5, 1],...

> 输入 [1,1,12,12] > 结果是: [[1], [1], [12,12]] 三个数组项的和分别为 1,1,24 > 最优解应该为 [[1, 1], [12], [12]] 三个数组项的和分别为 2,12,12 @FlyingRabbit7 感谢指出问题Thanks♪(・ω・)ノ 答案已更新哈

> leetcode 有类似的题吗? @AielloChan 在leetcode 可以练习自己的解题思路,培养解题思维,练的多了,看到这样的题,就会知道怎么去解了,在leetcode 也不要盲目的从头开始刷,最好是分类练习

#### 1)为什么会有Event Loop ​ JavaScript的任务分为两种`同步`和`异步`,它们的处理方式也各自不同,**同步任务**是直接放在主线程上排队依次执行,**异步任务**会放在任务队列中,若有多个异步任务则需要在任务队列中排队等待,任务队列类似于缓冲区,任务下一步会被移到**调用栈**然后主线程执行调用栈的任务。 > **调用栈**:调用栈是一个栈结构,函数调用会形成一个栈帧,帧中包含了当前执行函数的参数和局部变量等上下文信息,函数执行完后,它的执行上下文会从栈中弹出。 ​ JavaScript是`单线程`的,单线程是指 js引擎中解析和执行js代码的线程只有一个(主线程),每次只能做一件事情,然而`ajax`请求中,主线程在等待响应的过程中回去做其他事情,浏览器先在事件表注册ajax的回调函数,响应回来后回调函数被添加到任务队列中等待执行,不会造成线程阻塞,所以说js处理ajax请求的方式是异步的。 ​ 综上所述,检查调用栈是否为空以及讲某个任务添加到调用栈中的个过程就是event loop,这就是JavaScript实现异步的核心。 #### 2)浏览器中的 Event Loop ##### Micro-Task 与 Macro-Task 浏览器端事件循环中的异步队列有两种:macro(宏任务)队列和 micro(微任务)队列。 常见的 macro-task:`setTimeout`、`setInterval`、`script(整体代码)`、` I/O 操作`、`UI 渲染`等。 常见的 micro-task:...

**答案** B C E **解析** SPA( single-page application )仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转;取而代之的是利用路由机制实现 HTML 内容的变换,UI 与用户的交互,避免页面的重新加载。 - SPA优点 - 用户体验好、快,内容的改变不需要重新加载整个页面,避免了不必要的跳转和重复渲染; - 基于上面一点,SPA 相对对服务器压力小; - 前后端职责分离,架构清晰,前端进行交互逻辑,后端负责数据处理; - SPA缺点 -...

**答案** ```js ƒ a () { a = 2; console.log(a); } ``` **解析** 立即调用的函数表达式(IIFE) 有一个 自己独立的 作用域,如果函数名称与内部变量名称冲突,就会永远执行函数本身;所以上面的结果输出是函数本身;

**答案** false **解析** 1)当 a 出现在 if 的条件中时,被转成布尔值,而 Boolean([0])为 true,所以就进行下一步判断 a == true,在进行比较时,[0]被转换成了 0,所以 0==true 为 false 数组从非 primitive 转为 primitive 的时候会先隐式调用 join 变成“0”,string 和 boolean 比较的时候,两个都先转为 number 类型再比较,最后就是 0==1...