第一题:

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

内容来源于网络如有侵权请私信删除

文章来源: 博客园

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

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程