欢迎光临
我的个人博客网站

前端面试题0409

第一题:

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

赞(0) 打赏
未经允许不得转载:张拓的天空 » 前端面试题0409
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏