前端面试题0409

  • A+
所属分类:Web前端
摘要

第一题:  第二题:   第三题:  第一题:考点:变量提升,变量作用域

第一题:

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