简单的面试总结---内含面试题目 | 掘金技术征文

纸上得来终觉浅,绝知此事要躬行。

面试是你们都没法避免的一个话题。我所在的公司是一个不算小的公司,在这个公司作外包两年,转正一年。在金九银十面试的季节里也按奈不住想去面试一下。面试的经验除了如今呆的公司再也没面试过其余公司。在这里没有什么BAT,没有什么美团、小米等大公司,只是单纯的想写一下本次面试的过程。
css

我面试的公司是一个搞互联网金融的小贷公司,听说是外资投资,福利待遇很好。不过是刚起步招聘的是核心成员,要求相对很高。因为是一个刚起步的公司技术面和HR面都是同一我的,面试个人是一个全栈开发工程师。html

长话短说,下面是我面试时面试官所问的一些问题:前端

1. 自我介绍

自我介绍能够说是在正规公司面试流程的第一步,公司了解一我的就是先从你的自我介绍开始。在这个阶段,我只是简单的说了一下从毕业(15年毕业)到如今,在公司作的一些大型项目和用到的一些技术。这个根据我的不一样的状况自由发挥,在此不作大篇幅的介绍。css3

2. 技术问答

2.1 Vue、React、smarty

在8102年Vue、React、Angularjs三大框架横行的时代,个人面试官也提出了一些问题。提问了Vue的生命周期子组件和父组件之间的传值,模拟了一个修改数据的场景问我是在哪一个生命周期去调用。面试

因为我在简历上写了我也用React开发过,因此面试官就问我Vue和React相比较各自的优缺点。在这个问题上我只是简单的说了一下Vue和React的特色,主要说了一下本身的感觉并无深刻的去比较过他们之间的差异。算法

如何理解Vue,Vue与smarty模板的差异?面试真的能让人大开眼界,不只能够了解本身的不足还能够触类旁通的对比各类技术。面试官若是不问我这个问题我尚未比较过这些东西,后续若是有时间我会把他们之间的差异介绍一下。segmentfault

2.2 怎么理解http是一个无状态协议?(卒)

做为一个优秀的前端网络工程师,了解基本的http知识是颇有必要的,但做为一个前端菜鸟的我忽略了这方面的知识我反省。跨域

在网上查阅了一些资料之后明白为何说http是一个无状态协议,通俗的讲无状态就是客户端请求数据,服务端对这个请求不去记录、不去关注。若我理解的有误差欢迎各位大佬给我留言沟通交流。数组

2.3 如何理解 DOCTYPE

面试官忽然问我这个问题一下把我搞蒙了,这个问题感受已是一个被淘汰掉的问题,我接触前端有3年了算不上很高深,没有使用过刀耕火种的技术去开发前端网页。对这个问题没能回答的上来。只是说它是告诉浏览器是使用了那种语言规范。promise

在网上找到了不少关于这些方面的介绍,能够说前端飞快的发展可是也不要忘记最基本的知识。

2.4 get和post的区别

经典面试题之一,凭感受本身回答了一下可是不是很深刻,在这里有一篇文章解答的很好。一个优秀的前端不只仅只在于表象,要有专研精神把某一个问题了解透彻这样才能有进步。

2.5 跨域问题

经典面试题之一,网上资料一大把。

2.6 HTML五、CSS3

在8102年HTML5和CSS3已经获得不少浏览器的支持学习好新的规范也是前端必备之一。了解并使用HTML5的一些新特性,是很重要的一块。个人面试官问了我H5的新特性都有那些?css3的选择器有那些?css3选择器它们之间的权重和优先级?(感受问的应该是css的选择器)。如何画一个相似心电图的线?

2.7 ES6

简单的说一下ES6新增的方法,除了promise还有那些异步方法,解构的原理。

2.8 移动端和PC端

如何适应移动端不一样分辨率不一样尺寸,PC端适配移动端,自适应和从新开发移动端的优缺点。根据不一样的场景去使用不一样的方法,具体状况具体分析。

2.9 算法

大数据时代都要考一些算法?下面是面试官的考题分析给你们,但愿你们能帮我指点迷津。

一个整型数组,将其划分为相同的N(整数)个切片,每一个切片加总和是相同的,是否能够找到而已的切片,若是找到就找到了所谓的N等分点,输出true,不然输出false。
如:N=4,输入数组[2,3,5,1,2,2,1,1,3],切片结果为:[2,3],[5],[1,2,2],[1,1,3],也就找到所谓的4等分点,结果输出为true。请写出一个方法实现这个操做。

这个问题的主要思路就是:先求出平均数,而后依次去取数组里面,加起来等于平均数的元素。最后就必定要恰好数组取完了,分片的数量也等于传入的n。

/** 
 * @description 是否可以找到指定数组的N等分点 
 * @param { Array } integerArr 整型数组 
 * @param { Number } n 几等份 
 * @return { Boolean }  
*/
function isFindAverage(integerArr, n){ 
    if(!integerArr || !Array.isArray(integerArr) || !(n - 0)){  
     // 入參不符合要求  
     return false; 
}
// 若是总和不能平均整数,则必定不能平均分片 
const average = integerArr.reduce((prev, curr) => prev + curr) / n; 
if(average !== parseInt(average)){  
    return false; 
} 
// 能够分为几片 
let result = 0; 
// 当前分片的总和 
let total = 0; 
for (var i = 0; i < integerArr.length; i++) {  
    // 相加恰好为平均数,则去除数组符合条件的整数,并增长分片数,从头开始再相加  
    if(total + integerArr[i] === average){   
        result++;   
        integerArr.splice(i , 1); 
        i = -1;   
        total = 0;
      }else if(total + integerArr[i] < average){   
        // 相加小于average 则继续循环相加   
        total += integerArr[i];   
        integerArr.splice(i , 1);   
        i--;  
      } }; 
       // 分片长度为所传n 且 数组必须更好长度为0 
        if(result === n && integerArr.length === 0){  
            return true; 
        } 
    return false;
}复制代码

3. 面试官的回答

跳槽能够说是一个很重要的选择,到最后面试官通常会问一下是否有什么想了解的。其实在面试以前,面试者就应该对一个公司简单的了解一下。在网上查找一下这个公司的基本状况,从招聘简介中也能够看到公司的一些状况。当面询问也是一个很好的途径,毕竟面试是相互选择的。在这个时候能够询问一下本身想了解的或者不明白的,能够询问刚才的技术问题。其余的因人而异。

4. 总结

之后的前端工做再也不是简简单单的切图仔的工做了,浏览掘金的用户前端开发确定不是简简单单切图的。从面试的来看企业招人的要求提升了,做为开发者也要相应的提升本身的技术,既要巩固基础知识,也要学习新的知识。一个合格的开发者要不断的学习,没有一个行业可以一劳永逸。其实面试也是巩固本身知识的一个途径,隔一段时间去面试一下不只能够了解其余公司所使用的技术,所重视的方向;同时也是对本身学习的检验。文中若是有什么纰漏请各位大佬帮忙指出一下。


路漫漫其修远兮,吾将上下而求索。


秋招求职时,写文就有好礼相送 | 掘金技术征文

相关文章
相关标签/搜索