首页 > 其他 > 详细

前端面试题0409

时间:2021-04-10 00:14:21      阅读:21      评论:0      收藏:0      [点我收藏+]

第一题:

var a = 6;
for(var a = 0; a < 9; a++){

}
console.log(a);

 

第二题:

var B = {
    num: "123",
    fn: function (){
        console.log(this.num);
    }

}
B.fn();
var A = B.fn;
A();    

 

第三题:

function A(a){

    console.log(a++);

    A = function (b){
        console.log(a++ + b);
    }
}
A(1);
A(1);    

 

参考答案:

第一题:

考点:变量提升,变量作用域

var不支持块级作用域,所以for中的变量a会覆盖掉for外面的,a在0~8循环,在9时跳出,所以最后输出9

第二题:

考点:函数的this

B.fn()的输出为123,A()的输出为undefined,函数中的this是动态的,取决于谁调用,B是由全局window调用的,window下无num属性,所以输出为undefined

第三题:

考点:闭包,自增运算符

第一次调用A(1)输出为1,并将一个新函数(闭包函数)赋值给A

第二次调用A(1)时,执行的是闭包函数,闭包函数中可以使用父函数的变量a(为2),b为1,所以a++ + b为3,输出为3

前端面试题0409

原文:https://www.cnblogs.com/liedElxa/p/14638216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!