你好,朋友们。现在前端程序员编程还是挺流行的。本文根据多年丰富的面试经验和职位分析,对技术栈和各大公司的面试特点做了简要分析。随着我的头发越来越少,我们可以说积累了越来越多的经验。在这里,我给大家简单分享一下。
先说必备的前端技能,比如html,css,Javascript,jQuery,nodejs,vue,react,设计模式。这些技术仍然需要。当然,你可以选择两个框架中的一个。

目前大公司的需求大多基于原生Javascript。比如腾讯、阿里等互联网头部公司,在前端面试中对原生产品的要求非常高。而且以腾讯为代表的一系列公司都喜欢在面试过程中让你手写你的代码,所以如果你要去面试腾讯的小哥哥们,一定要提前做好准备。
先列出我们最熟悉的腾讯。我们先来看看qq音乐前端工程师的招聘要求:
至少三年Javascript开发经验;
扎实的javascript基础知识;
能够熟练使用HTML、CSS和Javascript开发高性能的web应用;
熟悉Web性能优化,有性能优化实践经验;
良好的代码风格、界面设计和程序架构意识;
良好的沟通技巧和团队精神;
思路清晰,优秀的分析问题和解决问题的能力;
加分:计算机科学或软件工程专业;
掌握服务器端编程语言,有实践经验;
坚持写技术博客1年以上;
为开源项目做贡献;
GitHub的个人原创项目有50多颗星;
在著名的行业技术会议上分享过。
良好的借鉴意识;
良好的软件工程意识;
对技术有持续的热情和激情;
热爱音乐。
根据需求我们可以分析什么?首先说一下腾讯的背景。腾讯的前端是基于原生Javascript的,所以对Javascript的要求一定很高。那么这个高要求高标准到底有多高呢?面试官通常会给你各种组合拳,经验丰富。这一套组合拳,对于新手来说,确实很迷惑。我们先来分析一组原生组合拳:
原生javascript组合拳
问:基本类型和引用类型的区别。
答:基本类型是存放在栈中的值,引用类型是存放在堆中的数据的地址。
问:你能举一个Javascript中引用类型的例子吗?
答案:对象,函数,数组,集合,映射
当然,采访Javascript离不开原型链和作用域链,所以什么是作用域链其实是一个一言难尽的话题,因为这里是我个人的理解:
在函数执行的过程中,会生成一个临时存储数据的对象。这个对象被称为activeObject,简称AO。当每一个函数被执行时,这样的东西会被存储在堆栈中,以便在中间存储局部变量。但js有全局变量的概念,即全局数据可以局部访问。如何访问它?当然是由内而外的泡沫访问,但是如何由内而外的访问,由包含关系决定访问顺序,就是传说中的范围链。
接下来,原型链(prototype chain)也是由内而外的,它是实例对象访问方法和共享数据的序列。然后我会继续问一些关于闭包和内存泄漏的问题。闭包问题其实是两个函数嵌套的Javascript特性,导致两个嵌套的活动对象,子活动对象存储父活动对象的属性,导致外部函数的局部变量被子活动对象保存。

用代码来表达它:
外部功能{
var freeVar = "你好"
}
这个外部函数会产生一个AO,这个AO是执行外部函数创建的,所以我们暂时命名为AO。
闭包自然需要函数嵌套:
外部功能{
var freeVar = " hello
内部函数{
console.log
}
返回内部;
}
然而,每当在AO内部创建的函数引用外部变量时,就会创建一个闭包。
收起你的黑色问号脸,看看我的解释:
在执行内部函数的时候,当然也会产生ao,所以这个AO就叫AO,ok。我们在这个AO里做了什么?我们提到外部函数的变量freeVar了吗?
是的,我确实做了,但是你刚刚使用了freeVar。不不不,其实我们在内部函数中引用了AO.freeVar。
好了,这次我们来看看。什么是对象?既然是对象,那是引用类型吗?引用类型存在于内存中,但不存在。恭喜你,这个AO.freeVar不会希望普通的局部变量在函数结束时被删除,而是保存在内存中。这是结束。
基本上你对Javascript的理解,Javascript的原理和机制,面试官都会看得很透彻。接下来,我们将考察一些知识的广度。当然,这些问题都比较简单,容易得到答案,所以我只在后面的部分列出问题。
和页面性能:
这是考察基本功的时候了。布局可以说是一个前端最常用的技能,所以会根据各种需求提问。当然,同样重要的是一些优化细节,例如:
重绘和回流分别是什么?哪个更消耗性能?如何提高性能?
各种定心。
命名空和命名方法。
移动rem布局、百分比布局和响应布局。
HTML标签的语义
多线程Javascript。

Http请求优化
算法设计模式
了解基本的排序算法,如快速排序、冒泡等排序算法。提前做好准备总是没有坏处的。
设计模式是一个没有鸡蛋的大框架,但是写设计模式,比如观察者模式,策略模式,可以让代码更加优雅清晰。
好了,今天的面试分析暂时就到这里。其实面试过程中问项目业务是很常见的。因为前端面试的多样性,每一次大公司的面试,其实都是对我们技术栈和学习能力的挑战。在不断进步和学习的过程中,要提升自己,不断进步,丰富阅历。希望天下太平,头发永垂不朽。


