// 1: 根据后面的每次调用写出 o 的输出结果:
function fun(n, o) {
console.log(o);
return {
n: 10,
fun: function (m) {
return fun(m, n);
}
};
}
var a = fun(0);
a.fun(1); //
a.fun(2); //
a.fun(3); //
console.log(a);
// 2. 请写出 console.log 的结果,若异常请写出原因
function foo(a) {
var fn = 12;
fn();
function fn(num) {
console.log(num += a);
}
}
foo(10);
// fn
// 3. 写出以下代码在标准浏览器的输出顺序
async function async1() {
console.log(1);
await async2();
console.log(2);
}
async function async2() {
console.log(3)
}
console.log(4)
setTimeout(function () {
console.log(5)
}, 0);
async1();
new Promise(function (resolve) {
console.log(6);
resolve();
}).then(function () {
console.log(7)
})
console.log(8);
一次有价值的面试题【前端】
最新推荐文章于 2026-01-06 23:00:43 发布
本文深入探讨JavaScript中的异步编程,通过一个示例解释了`async1`、`async2`函数的调用顺序以及`console.log`的输出。同时,文章还分析了函数内部作用域与闭包的概念,展示了`fn`变量在不同作用域内的行为。对于理解JavaScript的异步处理和作用域规则具有指导意义。
25万+

被折叠的 条评论
为什么被折叠?



