不管你是新人小白还是老手,一定要注意理清自己的知识框架、梳理好自己的技能栈,能把这些熟知的、掌握的带入到实际案例、问题场景中来,让自己看起来像一个阅历丰富、见多识广的成熟工程师。只有这样你才能被人发现闪光点,得到企业的认可,薪资待遇也更好谈。
不管你是否做过项目、做过多少项目,如果你不能把自己掌握的技能和企业需求的技术点结合起来并运用到实际案例场景中,只会让人以为你空口白话吹牛逼,毕竟现在吹牛逼的多了,随便在任何一个网站上都能看到各种所谓的知识架构、各种体系,只要稍微背一背都能出口成章。但是企业真的需要这样的人吗?那可不一定。
企业真正需要的是能够做项目的人,你掌握了多少技能是你自己的闪光点,但是如果你掌握的东西和企业需求不搭,反而会是某种阻碍,因为做技术面试的人一定是企业项目主管及以上级别,他们对公司项目了如指掌,也知道怎么做用到哪些东西才更符合自己的需求。如果你只是让自己看起来更像一个技能库,他们反而没有那么多期待,因为在做项目的时候没有一个人做所有的东西,都是由团队来共同协作完成,你会的多了就说明你掌握的不一定深。
当然不是说你会的少就好,反而是因为技术更新变化太快、项目开发难度越来越大,导致技术人员需要掌握的东西越来越多,但是这个多一定是在质后面的,你首先要有自己的核心知识点,明白自己更擅长做什么、更适合做什么,而不是什么都可以做,却什么都做不好。
下面会提到一些在在面试过程中被问到比较多的一些实际性的问题,希望能够给你带来一些参考,在面试的过程中规避掉哪些坑。
1、JS事件会经历几个阶段,分别在某个阶段遇到什么问题,如何来解决?
2、不同绑定事件解绑事件的方法有什么区别,参数分别是什么,以及事件对象e有什么区别等等
3、【事件的代理/委托】的原理和优缺点
4、手写原生js【实现事件代理】,并要求兼容浏览器,其实就是考核对事件对象e的了解程度,以及在IE下对应的属性名
5、从多个角度和方向分析前端性能优化,这个比较复杂,但是最好挑自己经历过或听说的比较熟悉的方面入手,因为这个问题太广、考虑的因素太多
6、手写Function.bind函数并解释这个函数的原理和在什么场景下会用到
7、快速排序和去重是比较基础的问题,但也是企业考虑你基础的地方,这个不容忽略
8、css垂直居中方法有很多种方法,元素也比较多,这个要考虑到场景,最好结合你做过的场景分析
9、自适应布局这个问题也有很多很多种方向和解决方法,按照自己最熟悉的来,充分证明自己的效率
其实每个公司面试会遇到的面试问题都不太一样,以上列举的是一些有工作成熟的工程师在跳槽求职中遇到的稍微有代表性的问题,不代表你回答不出来就找不到工作,企业就不要你。而是用这些案例告诉大家,一个成熟的能够被企业认可的给予高薪的工程师会面临哪些问题。
如果你不能在面试的过程中把自己的经验呈现出来,企业招聘的时候就会考虑更多其他方向的东西。当你的经验足够丰富、企业反而会忽视掉一些你所缺乏的,能够给予更多机会和更高的待遇。技术人才不应该只是掌握多少个技能点,而是应该把自己掌握的技能融入到实际工作中来,这才是一个成熟的前端工程师。