题目叫:仅用一道题考验前端工程师的基础和内功

var a = 2;  
function foo(){  
    console.log(this.a);
}

foo();  

------ 我是分割线 ------

2015.11.28 更新:

抛出这道题的本意是好的,我承认名称起的有点装b了,但是这个不重要,重要的是,下面的回答补充的非常精彩,也是我这个问题的目的,共勉。

阅读 6.3k
8 个回答

其实我很明白你想说什么。。。 但是你的问题没有提好。。

这个题,在浏览器的环境下,就是输出2.没有其他问题,

如果是nodejs的环境,可能是2 也可能是 undefined的。

原文出处在这里。 http://f2e.souche.com/blog/a-js-problem-about-global/

不谢。

装逼题。真正考察一个前端的基础和内功的是 HTTP 协议,一切语言层面的东西都是表象,真正解决问题的时候就知道什么有用了。

2啊,没什么问题吧,而且基本功就是指作用域和this吗。。

你的标题很吸引眼球~

我作为初级前端回答就是2。。foo在window下嘛

作为新手回答,手机没有码代码验证,如有错误感谢指正
var出的a为全局变量,foo()在全局调用,this指向全局,所以输出2。不知道对不对

既然是考验前端工程师的基础和内功,那么这道题答案是 undefined.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题
宣传栏