在网上乱逛查资料,偶然看到下面这个js面试题,
alert(a)
a();
var a=3;
function a(){
alert(10)
}
alert(a)
a=6;
a();
这么一个题,里面有好几个坑,很不幸,我也掉进了最后一个坑。答案也很简单,自己运行一个就知道了,
首先第一个alert(a),因为js函数中的变量提升,所以此时a的值不是undefined,而是下面所定义的那个function a()...,这个知识点就是函数的变量提升。
然后接下来是10,再接下来是3,这没什么可说的;
最后的a(),执行的结果为什么是a is not a function..?
因为在它上面有一句a=6
为什么这个题里面的坑很多,因为它里面涉及了许多js的基础知识。而且是有针对性的去考验一些知识点。例如有的人只看书看资料,觉得看懂就ok了,但却不愿意写代码,觉得都是已经看懂了的东西,还写它干嘛。
但这答案都代表了什么?
为什么这个题是专坑新人的?
希望工作经验在一年以内的前端新人,认真思考。