面试加工厂

快手一面

2021-04-17  本文已影响0人  斗伽

第一题

请实现一个cacheRequest方法,保证当使用ajax(请求相同资源时,此题中相同资源的判断是以url为判断依据),真实网络层中,实际只发出一次请求(假设已存在request方法用于封装ajax请求,调用格式为:

request(url, successCallback, failCallback)

) 比如调用方代码(并行请求)如下 
cacheRequest('/user', data => { 
    console.log('请求的user,数据为' + data);
})
cacheRequest('/user', data => {
    console.log('请求的user,数据为' + data);
}) 

答案参考

第二题

使用闭包实现一个counter函数,全局下每次调用返回值 +1

console.log(counter()); // 1

console.log(counter()); // 2

console.log(counter()); // 3

第三题

console.log(1);

setTimeout(() => {
 console.log(2)
});

Promise.resolve().then(() => {
 console.log(3);
});

setTimeout(() => {
 console.log(4)
});

new Promise(resolve => {
 console.log(5);
 resolve();
 console.log(6);
}).then(() => {
 console.log(7)
});

Promise.resolve().then(() => {
 console.log(8);
 Promise.resolve().then(() => {
   console.log(9)
 });
});

第四题

var name = "222"
var a={
    name:"111",
    say:function(){
        console.info(this.name);    
    }
}
var fun = a.say;
fun();
a.say();

var b = {
    name:"333",
    say:function(fun){
        fun();
}
}
b.say(a.say);
b.say = a.say;
b.say();


/* 答案:
222
VM272:5 111
VM272:5 222
VM272:5 333 */

第五题

给你两个有序整数数组 nums1 和 nums2,请你合并num1和nums2,返回一个有序数组。

说明:

初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。

不能使用sort

示例:

输入:

var nums1 = [1,2,3,7], m = 4;

var nums2 = [2,5,6], n = 3;

输出: [1,2,2,3,5,6,7]

上一篇 下一篇

猜你喜欢

热点阅读