01-22
模拟实现
- 实现一个简单的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)
})
// 如有精力,考虑一下如何实现链式调用
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)
})
场景题
- 如何实现大文件的分片上传,断点续传,还有通常说的秒传?
js
// 阐述你的思路即可,多捋一捋,确保思路清晰
// 阐述你的思路即可,多捋一捋,确保思路清晰
理论
- 什么是函数柯里化?他有什么作用
- 实现一个柯里化函数
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
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
- this指向考察,阐明输出结果是什么
- 例1
jsvar a = 1 var obj = { fun:function(){ console.log(a) }, a:2 } obj.fun() // ?
var a = 1 var obj = { fun:function(){ console.log(a) }, a:2 } obj.fun() // ?
- 例2
jsvar a = 1 function foo(){ console.log(a) } function bar(){ var a = 2 foo() } bar() // ?
var a = 1 function foo(){ console.log(a) } function bar(){ var a = 2 foo() } bar() // ?
- 原始值类型有哪些
- null是对象吗?为什么 typeof null === 'object'
事件相关
- 事件触发的几个阶段是什么
- 为什么通常在冒泡阶段执行事件
- 实现一个demo
- html结构
html<ul id='list'> <li data-id> <!-- 很多子节点,但不包含li --> </li> </ul>
<ul id='list'> <li data-id> <!-- 很多子节点,但不包含li --> </li> </ul>
- 要求点击li或者li中的任意子节点都能取到li上的data-id如何实现
js// 你的实现
// 你的实现