有你在真好 的个人博客
两道基础前端面试题,看看有多少人都栽在这上面啦,你造吗?
阅读:2240 添加日期:2021/3/27 23:25:00 原文链接:https://www.toutiao.com/item/6435122592419414530/

又到了一年毕业季,又有很多大学生从大学毕业,来到社会。今天主要是给这些小伙伴一些面试的小技巧,总归一句多学习一些也是有用处的,临时抱佛脚也要抱才有啊,所以今天给大家分享两个小问题,现在的前端程序员需求已经不是能用html布局,或是用javascript写个特效这么轻松了,也因为现在的初级前端泛滥,所以各大公司对前端的面试要求也开始逐步提高,特别是对于基础知识的扎实程度,能否灵活运用所学的知识这些方面给予的考验也会相对的严格!

现在就来看看!

问题1:闭包

考虑下面的代码:

两道基础前端面试题,看看有多少人都栽在这上面啦,你造吗?

答案:

上面代码的目的在于检测JavaScript的一个重要概念:闭包。对于每一个JavaScript开发者来说,如果你想在网页中编写5行以上的代码,那么准确理解和恰当使用闭包是非常重要的。

好了,回到上面的代码。控制台会输出两次You clicked element #NODES_LENGTH,其中#NODES_LENGTH等于nodes的结点个数。由于闭包中变量的值不是静态的,i的值并不是添加click事件处理器时的值(比如,当给第一个button添加click事件处理器时i为0,给第二个添加时i为1)。当for循环结束时,变量i的值等于nodes的长度。因此事件被执行时,控制台会输出变量i当前的值,即等于nodes的长度。

两道基础前端面试题,看看有多少人都栽在这上面啦,你造吗?

如果有正在学习前端,不知道怎么学习,学习效率不高或者不知道行业前景,就业前景的也可以来一下我们头条前端群477149581,有大神,有小白,每晚都会分享一些企业级的知识和面试技巧。

问题2:算法

写一个判断质数的isPrime()函数,当其为质数时返回true,否则返回false。

答案

我认为这是在面试中最常问到的一个问题。尽管这个问题反复出现并且也很简单,但是从面试者提供的答案中能很好地看出面试者的数学和算法能力水平。

首先, 因为JavaScript不同于C或者Java,因此你不能信任传递来的数据类型。如果面试官没有明确地告诉你,你应该询问他是否需要做输入检查,还是不进行检查直接写函数。严格上说,应该对函数的输入进行检查。

需要记住的第二点,负数不是质数。同样的,1和0都不是,因此,要对这些数字做检测。另外,2是唯一的既是偶数又是质数的数字。没有必要用一个循环来验证4,6,8。再者,如果一个数字不能被2整除,它同样也不能被4,6,8等整除,因此你的循环需要跳过这些数字。可以采取其他一些更明智的优化手段,我这里采用的是适用于大多数情况的。例如,如果一个数字不能被5整除,它也不会被5的倍数整除。所以,没有必要检测10,15,20等等。

最后一点,你不需要检查比输入数字的开方还要大的数字。我感觉人们会遗漏掉这一点,并且也不会因为此而获得消极的反馈。但是,展示出这一方面的知识会给你额外加分。

现在你具备了这个问题的背景知识,下面是总结以上所有考虑的解决方案:

两道基础前端面试题,看看有多少人都栽在这上面啦,你造吗?

两道基础前端面试题,看看有多少人都栽在这上面啦,你造吗?

两道基础前端面试题,看看有多少人都栽在这上面啦,你造吗?

头条号里有许多web前端学习视频/源码,企业常用特效/案例/项目,敬请关注!

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号