Skip to content

01-22

模拟实现

  1. 实现一个简单的Promise,具备then 与 catch方法
js
// 如有精力,考虑一下如何实现链式调用
function myPromise(executor){
    // ...你的实现
}

new myPromise((res,rej)=>{
    console.log(1)
    res('success')
}).then(console.log)

new myPromise((res,rej)=>{
    console.log(2)
    rej('error')
}).then(console.log)
.catch(err=>{
    console.log('----')
    console.log(err)
})

场景题

  1. 如何实现大文件的分片上传,断点续传,还有通常说的秒传?
js
// 阐述你的思路即可,多捋一捋,确保思路清晰

理论

  1. 什么是函数柯里化?他有什么作用
  2. 实现一个柯里化函数
js
function currying(){
    // ... 你的实现
}

// ---测试代码---
function sum(a,b,c,d,e){
    console.log(a+b+c+d+e)
}
sum = currying(sum)
sum(1,2)(3)(4)(5) // 15
  1. this指向考察,阐明输出结果是什么
    • 例1
    js
    var a = 1
    var obj = {
        fun:function(){
            console.log(a)
        },
        a:2
    }
    obj.fun() // ?
    • 例2
    js
    var a = 1
    function foo(){
        console.log(a) 
    }
    function bar(){
        var a = 2
        foo()
    }
    bar() // ?
  2. 原始值类型有哪些
  3. null是对象吗?为什么 typeof null === 'object'

事件相关

  1. 事件触发的几个阶段是什么
  2. 为什么通常在冒泡阶段执行事件
  3. 实现一个demo
    • html结构
    html
    <ul id='list'>
        <li data-id>
            <!-- 很多子节点,但不包含li -->
        </li>
    </ul>
    • 要求点击li或者li中的任意子节点都能取到li上的data-id如何实现
    js
    // 你的实现

朋友们的回答