1、同步,异步,阻塞,非阻塞,分别解释一下。
以烧水的案例来理解。
同步:使用普通水壶烧水。
异步:使用响水壶烧水。
阻塞:在烧水时不能做别的。
非阻塞:在烧水时可以去做别的事,通过轮询(epoll)查看水是否烧开。
2、cdn 是如何匹配最近的节点的?
通过动态 dns 解析。
3、promise 实现一个 sleep。
async function test() {
console.log('Hello');
await sleep(1000);
console.log('world!');
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
test();
4、实现一个 css 布局,每一列的第一个和最后一个元素,在最左最右侧,其他的元素均匀分布。
案例:第一行 4 个元素,第二列 2 个元素。
5、请分析以下代码执行结果
function test(a) {
console.log(a);
function a() {}
}
test(2);
6、请分析以下代码执行结果
console.log('start');
const interval = setInterval(() => {
console.log('setInterval');
});
setTimeout(() => {
console.log('setTimeout 1');
Promise.resolve()
.then(() => {
console.log('promise 3');
})
.then(() => {
console.log('promise 4');
})
.then(() => {
setTimeout(() => {
console.log('setTimeout 2');
Promise.resolve()
.then(() => {
console.log('promise 5');
})
.then(() => {
console.log('promise 6');
})
.then(() => {
clearInterval(interval);
});
});
});
}, 0);
Promise.resolve()
.then(() => {
console.log('promise 1');
})
.then(() => {
console.log('promise 2');
});
网友评论