wkiwi的博客

web前端经典笔试题

发布时间:5个月前热度: 178 ℃评论数:

1. 以下代码输出什么结果?

alert(a)
a()
var a = 3
function a(){
    alert(10)
}
a()
a = 6 
alert(a)
a()

分析:这道题考察声明提前,将上述代码转为实际代码

var a    //声明提前

function a (){ //声明提前 alert(10)

}

alert(a) //输出a函数 a() //输出10 a = 3 //a赋值为3

a() //报错此时a值为3已不是函数,后续不再执行

a=6

alert(a) a()


2. 以下代码输出什么结果?

for(var i =0;i<5;i++){
setTimeout(()=>{
    console.log(new Date(),i)
},1000)
}
console.log(new Date(),i)

分析:这道题考察宏任务相关知识,js为单线程,遇到 包括整体代码 script,setTimeout,setIntervcal等会创建宏任务,待主线程/与微任务(Promise,process.nextTick)完成后再去处理宏任务,将上述代码转换为实际代码

for(var i =0;i<5;i++){
}
setTimeout(()=>{
console.log(new Date(),i)
console.log(new Date(),i)
console.log(new Date(),i)
console.log(new Date(),i)
},1000)
console.log(new Date(),i)

//当前时间,5 
//当前时间+1秒,5  
//当前时间+1秒,5 
//当前时间+1秒,5 
//当前时间+1秒,5 

3.   以下代码输出什么结果?  

    考察引用数据类型细节

var a = new Object();
a.value = 1;
b = a; //b.value=1
b.value = 2;//b.value=2;a.value=2,因为a和b指向同一块引用类型的值
alert(a.value);   

4.以下代码输出什么结果?  


var foo = 1;
function f(){
    console.log(foo);
    var foo = 2;
    console.log(foo);
}
f();

分析: 考察 变量作用域 与变量声明提升转换为下述代码

var foo = 1;
function f(){
    var foo //声明提前   有局部变量就不去使用外部的foo=1 就近原则
    console.log(foo);  //undefined
    foo = 2;
    console.log(foo);  //2
}
f();













web前端笔试题,面试,经典笔试题

手机扫码访问