以下面试题是为了考什么????
考基础扎实?
function Foo()
{
getName = function(){return 1;}
return this;
}
Foo.getName=function(){return 2;}
Foo.prototype.getName=function(){return 3;}
var getName=function(){return 4;}
function getName(){return 5;}
//以下内容会输出什么?
console.log(Foo.getName())
console.log(getName());
console.log(Foo().getName());
console.log(getName());
console.log(new Foo.getName());
console.log(new Foo().getName());
console.log(new new Foo().getName());
考察你对
this
、原型链
、函数对象
、函数声明提前
等一系列知识。出这样的面试题是希望你能有一个对已有知识的整合能力,当初我在面试的时候也试过被面试官提了一个整合了
ajax
请求与事件轮询
相结合的问题,问的是把ajax
请求设为同步请求(async设为false
),然后在其回调函数以及ajax
请求代码的下一行各放一个方法调用,问哪个先执行,当时还不懂事件轮询
的原理直接蒙逼了。在实战中,更多时候你会接触多方面技术相结合的问题,那么你的思维方式就应该从原来的一元转变成二元或者多元。很典型的就是
javascript面向对象设计
,要真正做好这方面的技术,你要把函数对象
、原型链
、闭包
、this
等一系列的知识糅合到一起,才能算是开始起步。