我是一名前端工程师。通俗地说,我是一名程序员。虽然大学专业确实是IT相关的专业,但是在四年的学习过程中,我还是幸运的挂科,顺利毕业。我找到的第一份工作是一家软件公司的销售职位。可不管怎样,他都无法适应酒桌上杯杯相映,干活苦不堪言。有一天我一时冲动辞职,然后开始了漫长的失业生涯,因为我对下一步没有方向。我已经记不清当时为什么选择前端开发这个方向了。然而,前端入门其实很简单。无需任何编程知识即可制作精美的静态页面,甚至制作动画效果。总而言之,非常容易给人成就感。也许这就是原因。学了快半年了,主要是看网络视频课程,买了一些最新的前端学习书籍,看了很多公司面试题。我开始找工作,发现虽然职位很多,但是面试的邀请却很少。.我转行后的第一份工作第一次面试的机会来自一家初创公司。面试前,我紧张得肚子疼。面试官直截了当地问我一天能做多少页。我愣了,答案从来没有测试过,不好说,所以他当场让我做一个简单的页面作为测试,然后对速度表示满意,然后表示我通过了面试。我对这种轻率感到惊讶,而且知道公司没有其他前端人员,想了想还是拒绝了这个机会。面试我现在所在的公司时,领导问我:“为什么我以前一直在自学,现在决定出来找工作了?”老板面试我的时候问我:“你有没有实际的证据证明你有很好的学习能力?”我想了很久才回答,刚才导演说我学的挺快的。后来,当我把面试的过程告诉同学时,他笑得很开心。不过幸运的是,这次面试的结局是好的——我顺利入职了。我在这家公司工作了大约一年半。由于我个人的职业追求,这家公司无法为我的专业和职业发展提供条件。希望换一家公司,争取发展的条件。这次和刚转行的时候找工作不一样。我投资了一些大公司。希望我以后有更好的发展。当然,大公司工资起点高,福利好。这是毋庸置疑的。我投资过很多公司,字节跳动是我最喜欢的公司。面试前准备了很久,面试题也写了很多。可以说是准备的非常充分了。一侧画面中间有个元素A——70mins。随着屏幕宽度的增加,必须始终满足以下条件:A元素在屏幕上垂直居中*;A元素距离屏幕左右边缘10px;A元素中的文本“A”的字体大小:20px;水平和垂直居中;A元素的高度始终是A元素宽度的50%;(如果不确定,可以实现A元素的高度固定为200px;)请用html和css实现函数参数是数组吗?如果不是,如何将其转换为真正的数组请告诉我以下代码打印的结果if([]==false){console.log(1);};如果({}==false){console.log(2);};如果([]){console.log(3);};如果([1]==[1]){console.log(4);};请说出下面代码打印的结果asyncfunctionasync1(){console.log('async1start');等待async2();console.log('async1结束');}异步函数async2(){console.log('async2');}console.log('脚本开始');setTimeout(function(){console.log('setTimeout');},0);异步1();newPromise(function(resolve){console.log('promise1');resolve();}).then(function(){console.log('promise2');});console.log('脚本结束');实现ES5中Function原型的bind方法,这样下面的程序就可以最终输出'success'functionAnimal(name,color){this.name=name;this.color=颜色;}Animal.prototype.say=function(){return`我是一个${this.color}${this.name}`;};constCat=Animal.bind(null,'cat');constcat=newCat('白色');if(cat.say()==='我是一只白猫'&&catinstanceofCat&&catinstanceofAnimal){console.log('success');}请用算法实现,从给定的无序不重复的数组数据中取出n个数,求和为sum,给出算法的时间/空间复杂度。(不用求所有解,只求一个解)functiongetResult(data,n,sum){}反问环节到一个点结束,第二天下午hr电话预约两个.两侧——45mins代码运行结果vara=function(){this.b=3;}varc=newa();a.prototype.b=9;varb=7;a();console.log(b);console.log(c.b);JS继承中如何实现repeat,用JS实现一个repeat方法,调用这个repeatedFunc("hellworld"),它会alerthelloworld4次,每次间隔3秒functionrepeat(func,times,wait){}constrepeatFunc=repeat(alert,4,3000)代码题+逻辑:给定一个整型数组,每个元素大小在1-100之间,对这个数组进行排序。将范围扩展到32位整数怎么样?(可以打代码,也可以谈思路)哈希表结构,冲突解决方法,哈希函数有哪些类型openquestions:在学习数据结构或者算法的过程中,有没有你觉得很巧妙的地方?调用了大概三遍,兴奋不已,终于通过了二遍三遍-50mins模式匹配,1234567890->1,234,567,890(不是简单的JS函数,是用正则表达式做的,这里坑)浏览器的缓存策略穿越了领域问题项目的技术难点(我讲了第一个“难点”,老大说,这个好像不难吧?)如何监控JS的性能,如何监控用户页面是否卡顿(不懂,强答,聊一会老板说跳过这个问题)哈希冲突的解决方法数组和链表的区别浏览器渲染流程手头的offer情况为什么选择前端?反问部分分为三个方面:前两个方面是做题+原理的面试情况,三个方面回归到谈技术的方式。可能是因为是老板面条吧,总觉得压力很大,感觉自己很冷(可能是我太优秀了),面试的时候每一个问题都会一直问下去,不会改变问题,直到你无法回答为止。三边一共两次,面试官说“别说这个了,我们换个话题”。三轮过后,我真的慌了。审完后感觉面试官对每个问题都不是很满意。我感到寒冷,焦急地等待着结果。刚好是周五,如果当天不能等到结果,可能就要等到下周了。不出所料,那天没有消息。周六下午等不及了,发短信问hr。特别感谢hr,谢谢,他在非工作时间帮我查了结果,告诉我通过了,第二天会联系我。(其实我心里是超级兴奋的)总结一下,转行也快两年了。虽然比不上大佬们,但是也学到了很多东西。个人在学习的过程中,习惯于简单的做笔记,这样复习的时候可以快速理解。现在我将我的笔记分享给大家一起学习。我个人把这段时间所学的知识分为三个阶段:第一阶段:HTML&CSS&JavaScript基础第二阶段:移动端开发技术第三阶段:前端常用框架PS推荐学习方式:针对某个知识点,你可以先简单的过一遍我的笔记,如果你看懂了,那是最好的,可以帮助快速解决问题;如果因为我的笔记太简单而看不懂,可以关注我,以后我会继续分享。大厂面试很难。对于一个基础的知识点,比如JS的事件循环机制,你不会一上来就问概念,而是换个角度入手,看看你是否真的掌握了。所以理解这个概念真的很重要。
