最近在面试,碰到一些有意思的笔试题,将它记录下来分享给大家也在面试前端的小伙伴们。 1.
代码语言:javascript复制for(var i=0;i<3;i ){
setTimeout(()=>console.log(i),1);
}
输出:3 3 3
这道题主要考察的是 setTimeout函数的用法,setTimeout只运行一次,也就是说设定的时间到后就触发运行指定代码,运行完后即结束。
2.看下列代码,输出什么?解释原因。
代码语言:javascript复制var a=new Object();
a.value=1;
b=a;
b.value=2;
alert(a.value)
输出2,因为变量b和a指向同一个对象的引用。这道题是考察的浅拷贝,b和a指向的同一块内存。
3.用js递归的方式写1到100的求和?
代码语言:javascript复制function Add(num,start){
num =start
start
if(start>100){
console.log(num)
return num;
}else{
Add(num,start)
}
}
Add(0,1)