站点工具

用户工具


前端代码题

闭包

  1. 输出什么? 如果想输出0、1、2、3、4、5怎么解决,至少两种方案
    for(var i=0; i<6; i++) {
      setTimeout(() => {
     console.log(i)
      })
    }

异步、Promise输出

  1. 输出什么

    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. 输出什么

    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. 以下代码输出

var a = function(){ this.b = 3 } var c = new a() a.prototype.b = 10 var b = 7 a() console.log(b)//3 console.log(c.b)//3

2. 代码输出什么

function Foo() { getName = function () {

console.log(1);

} } var getName = function () { console.log(4); }; function getName() { console.log(5); } Foo.getName = function () { console.log(2) } Foo.prototype.getName = function () { console.log(3); } Foo.getName()
getName()
new Foo.getName()

1. 隐式转换

if ([]) console.log(1); if ([].length) console.log(2); if ([] == 0) console.log(3); if ({} === {}) console.log(4);

## 算法
1. 给两个数组[1,2,3],[2,1,3,4],如果A包含于B返回1,B含于A返回2,其他返回0
2. 无重复的字符串字串
3. 合并两个有序链表
4. 最长回文子串
5. 最长无重复字符子串
6. 搜索二叉树,找出第k大
7. 很长的字符串返回出现次数最多的字母以及相应次数
8. 多叉树的最大深度
9. js实现树的深度优先搜索、广度优先搜索
10. 返回前k个最小的数字组成的数组,保持相对顺序


## 手写
1. 手写一个Promise.all (3)
2. 手写Promise,包含简单的逻辑即可
2. 用reduce实现map
3. 手写一个repeat函数,要求每隔3秒alert一次helloWorld,总共输出4次

function repeat(func, times, wait){ ... } var rp = repeat(alert, 4, 3) rp('helloWorld')

4. 字符串转化为数字

// 'A' => 1 // 'B' => 2 // 'AA' => 27

5. 手写观察者(3), 带once
6. 代码题:写一个函数打印杨辉三角前n行

[

[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]

]

6. 用call/apply实现bind
7. 实现大数相加
8. 手写防抖节流
9. 实现并发控制
10. 写一个instanceof的实现
11. 字符串 转换为对象。 比如 a.b.c,

{

a: {
    b: {
        c: null
    }
}

}



                        
                                            
若愚 · 2022/01/25 16:57 · 前端专刷_代码题.1643101073.txt.gz