站点工具

用户工具


====== 差别 ======

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
前端专刷_代码题 [2022/01/24 14:58]
若愚
前端专刷_代码题 [2022/02/10 11:25] (当前版本)
若愚
行 12: 行 12:
 ``` ```
  
-## this、作用域、声明前置+## 异步、Promise输出 
 +1. 输出什么 
 +```javascript 
 +async function async1 (){ 
 +console.log("async1"
 +await async2() 
 +console.log("async1 end"
 +
 +console.log("scripts start"
 +async1() 
 +async function async2() { 
 + await console.log("async2"
 +
 +new Promise((resolve,reject)=>
 +  console.log("promise1"
 +  resolve() 
 +}).then(()=>
 +  console.log("promise2"
 +}) 
 +setTimeout(()=>
 +  console.log("setTimeout"
 +}) 
 +``` 
 + 
 +2. 输出什么 
 +```javascript 
 +setTimeout(()=> console.log(1)) 
 +new Promise(resolve => { 
 +  resolve() 
 +  console.log(2) 
 +}).then(_ => { 
 +  console.log(3) 
 +  Promise.resolve().then(_ => { 
 +    console.log(4) 
 +  }).then(_ => { 
 +    Promise.resolve().then(_ => { 
 +      console.log(5) 
 +    }) 
 +  }) 
 +}) 
 +console.log(6) 
 +``` 
 + 
 +## this、作用域、声明前置、隐式转换
 1. 以下代码输出 1. 以下代码输出
 ```javascript ```javascript
行 47: 行 90:
 new Foo.getName()     new Foo.getName()    
 ``` ```
 +1. 隐式转换 
 +```javascript 
 +if ([]) console.log(1); 
 +if ([].length) console.log(2); 
 +if ([] == 0) console.log(3); 
 +if ({} === {}) console.log(4); 
 +```
  
 ## 算法 ## 算法
行 57: 行 106:
 6. 搜索二叉树,找出第k大 6. 搜索二叉树,找出第k大
 7. 很长的字符串返回出现次数最多的字母以及相应次数 7. 很长的字符串返回出现次数最多的字母以及相应次数
 +8. 多叉树的最大深度
 +9. js实现树的深度优先搜索、广度优先搜索
 +10. 返回前k个最小的数字组成的数组,保持相对顺序
 +11. 给定一棵二元查找树,实现左右子树反转 用栈怎么实现
 +12. 找出数组中第k大和第m大的数字相加之和 findTopSum(arr, k, m)【阿里前端实习2021/7】
 +13. 给定一个带嵌套的数组,实现一个方法可获取嵌套数组的最大深度
  
 ## 手写 ## 手写
-1. 手写一个Promise.all (2)+1. 手写一个Promise.all (3)
 2. 手写Promise,包含简单的逻辑即可 2. 手写Promise,包含简单的逻辑即可
 2. 用reduce实现map 2. 用reduce实现map
行 76: 行 131:
 // 'AA' => 27 // 'AA' => 27
 ``` ```
-5. 手写观察者,发布、取消、通知、监听+5. 手写观察者(3), 带once 
 +6. 代码题:写个函数打印杨辉三角前n行 
 +```javascript 
 +
 +    [1], 
 +    [1,1], 
 +    [1,2,1], 
 +    [1,3,3,1], 
 +    [1,4,6,4,1] 
 +
 +```
 6. 用call/apply实现bind 6. 用call/apply实现bind
 7. 实现大数相加 7. 实现大数相加
-8. 手写防抖节流+8. 手写防抖节流 throttle/debounce = (fn, wait) => {} 
 +9. 实现并发控制 
 +10. 写一个instanceof的实现 
 +11. 字符串 转换为对象。 比如 a.b.c, 
 +```javascript 
 +
 +    a: { 
 +        b: { 
 +            c: null 
 +        } 
 +    } 
 +
 +```
若愚 · 2022/01/24 14:58 · 前端专刷_代码题.1643007537.txt.gz