前端经典面试题总结

发布时间:2019-08-12 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了前端经典面试题总结脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

接着我之前写的一篇有关前端面试题的总结,分享几道比较经典的题目:

第一题:

图片描述

考点:作用域,运算

1.console.LOG((inner.func,inner.func)())

栗子:

    VAR i=1,k=1;
    console.log((i++,k++)) //i,k都会进行运算,但是最后之后输出最后一个也就是k.

*那么(inner.fun,inner.func)其实就是inner.func,而且是个匿名函数,也就是属于window,就输出25

第二和第三个都是类似的,而且作用域是inner,都是输出20
最后一个:(inner.fun=inner.func)其实就是inner.func,而且是个匿名函数,也就是属于window,就输出25

第二题

图片描述

首先"a" in window 是返回true,因为"a"是始终存在window的,在外面加个!判断是否存在,很明显a永远window里存在,所有输出undefined

第三题

前端经典面试题总结

大家忘记的可以去普及一下,call,apply方法的用法以及适用场景,两个方法都是为了改变this指向,如果第一个参数传入的对象调用者是null
或者undefined的话,call方法将把全局对象(也就是window)作为this的值。所以,不管你什么时候传入null,其this都是全局对象window.
则返回[object window]

第四题

前端经典面试题总结

这里实际执行的是a[b.toString()] = 123,当你在同一个key赋值,那么后者会覆盖前者,所以输出456

第五题

前端经典面试题总结

doFun1(obj.logName),obj.logName作为参数传入,最后执行(obj.logName)(),匿名函数,this指向window,所以输出"HanMeiMei",
doFun2(obj),obj作为参数传入,最后执行obj.logName(),作用是obj,则输出LiLei

第六题

前端经典面试题总结

这里可能很多人一看就觉得是输出1,2,3,4,错误×,
这里其实for循环被放入主线程会先被执行,最后才会去走定时器里面的方法,当输出的时候i就已经是5了,而且是1s输出一次,所以是5,5,5,5。

如果要输出1,2,3,4,只需把var 改成letlet 是ES6的语法,是在括号的才能使用,别处不行

第七题 :什么是闭包,有什么优缺点(重点)

第八题:什么是原型链(重点)

第九题

有一对兔子,从出生后第三个月起每个月都生一对兔子 ,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死 ,问每个月的兔子总数为多少?

考点:递归
算法题目其实挺有意思,最主要是我们先要找规律

月 1 2 3 4 5

每月对应数量 1 1 1+1 1+1+1 1+1+1+1+1 前两个数加起来就是后一个
规律找到了,所以这么写就对了

function fib(n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
fib(100)//随你自己赋值了

总结:就写到这吧,打的手疼。有什么不懂得,大家可以一起在评论下讨论,我知无不言。(* ̄︶ ̄)

脚本宝典总结

以上是脚本宝典为你收集整理的前端经典面试题总结全部内容,希望文章能够帮你解决前端经典面试题总结所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。