故事开篇:
看到一则帖子,讲一个学历只是普通的大专毕业的程序员,做前端5年左右的时间了,中间干过3家公司,都是属于中型互联网企业和创业型的公司,规模不算大。很苦恼进不了大厂,一直在中小公司里打滚天天切图。
有一段时间他几乎天天在面试,从普通的一些小公司,到上市公司,到一线大厂(阿里,腾讯,字节)。然而得到最多的反馈其实就是2种,学历不够或者陪跑。
应该会有不少其他想冲击大厂的同学会得到另外两种反馈,技术深度不够,或者简历上缺乏拿得出手的项目。导致最后没有得到面试机会或者面试通过不了。
在这种前提下,你就很容易形成一种死循环,一直在中小公司徘徊,大部分的中小公司都是以业务优先,对于技术的建设相对来说比较缺乏,所以新的技术得不到实践机会,每天忙于各种业务需求,身边的氛围不好等,最终影响你能力的提升。
突破困境:
1. 提升学历
前端找工作,学历重要吗?
重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧,本科够用,硕士占优,大专以下找到工作靠运气和真实力。
学历是硬伤,已经毕业的你,没办法回到从前,如果你是大专,可以通过自考本科提升学历,会有一些帮助。起码可以让更多HR看你的简历。
还有就是用技术的长处去弥补学历的短板,你要做到比学历比你高的人技术更好,让别人看到并认可你的能力。
2. 提高技术
前端开发的基础知识必须要扎实且深入去学习,达到精通的地步。掌握HTML +CSS, HTML是网页的核心,这是前端最基本的知识。学好CSS是网页外观的重要一点,CSS可以帮助把网页外观做得更加美观。
学好JavaScript,学习JavaScript的基本语法,以及如何使用JavaScript编程将会提高开发人员的个人技能。多看一些原生JS代码。
学好SQL语句,要会基本的增删查改,前端开发中构建动态页面是必须使用到数据库的,但是数据库的产品很多,开发人员遇到这种情况别担心,因为它们都会遵循标准的SQL原则。
学好主流的Web框架,当你掌握了HTML,CSS和JavaScript后,就应该找一个Web框架加快你的Web开发速度,使用框架可以节约你很多时间。框架类的东西太多,要根据自己的需求来选择性地学习。
了解浏览器的工作原理。要比较清楚各大浏览器的兼容性,各自的优缺点等等。这对于前端开发过程很有帮助。
确保你的开发模式跟得上时代,技术的更新换代非常之快,尤其是前端技术更是博大精深,要学的知识很多,所以必须保证方向是对的,要跟上技术潮流。
前端资料分享
篇幅有限,有需要以下资料可以点击这里,免费获取文章中所有前端面试资料完整版的PDF文档!
1. 前端基础
HTML
- 你如何理解HTML结构的语义化
- 说说 title 和 alt 属性
- Html5 有哪些新特性、移除了哪些元素
- Label的作用是什么?是怎么用的?
- 浏览器是怎么对 Html5 的离线储存资源进行管理和加载的呢
- iframe有那些缺点?
- HTML W3C的标准
- Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
- HTML全局属性(global attribute)有哪些
- viewport的content属性作用
- meta 相关
- div+css的布局较table布局有什么优点
- 简述一下src与href的区别
- 知道的网页制作会用到的图片格式有哪些
- 如何在 HTML5页面中嵌入音频与视频?
…
CSS
- 水平居中的方法
- 垂直居中的方法
- link 与 @import 的区别
- 三列布局(中间固定两边自适应宽度)
- BFC 有什么用
- 清除浮动的几种方式
- CSS3有哪些新特性
- css3 新增伪类 - 伪元素
- 为什么要初始化CSS样式
- IE盒子模型 、W3C盒子模型
- 请解释一下CSS3的Flexbox(弹性盒布局模型),以及适用场景
- display:inline-block 什么时候不会显示间隙?
- 行内元素float:left后是否变为块级元素?
- 如果需要手动写动画,你认为最小时间间隔是多久,为什么?
- display:inline-block 什么时候会显示间隙?
- CSS权重,计算规则
- Sass、LESS是什么?大家为什么要使用他们?
- stylus,sass,less区别
- rgba() 和 opacity 的透明效果有什么不同?
- px和em的区别
- 使用css实现一个持续的动画效果
- 重排和重绘
- 什么情况会触发重排和重绘?
…
JavaScript
-
原型链
(1) 创建对象有几种方法?
(2) instanceof的原理? -
类
(1)类的声明?
(2)生成实例?声明一个类,怎么生成类的实例? -
继承
(1)call、apply的共同点与区别?
(2)用javascript实现对象的继承/ 继承的几种方式,这几种方式的优缺点? -
作用域
(1)说说你对作用域链的理解?
(2)this? -
JS闭包
(1)闭包的特征?
(2)闭包应用场景?
(3)实际开发中闭包的应用? -
JS运行机制,单线程,异步
(1)如何理解js的单线程?
(2)js为什么是单线程的?
(3)同步和异步的区别是什么?分别举一个同步和异步的例子?
(4)何时需要异步?
(5)什么是任务队列?
(6)请说出下列的值?
(7)栈和队列的区别?
(8)栈和堆的区别?
(9)什么是event loop?
(10)event-loop流程?
(11)哪些语句会放入异步任务队列中?
(12)何时被放入任务队列? -
JS数据类型
(1)js使用typeof能得到的哪些类型?
(2)如何准确判断一个变量是数组类型?
(3)js变量按照存储方式区分为哪些类型,并描述其特点?
(4)null和undefined的区别?
(5)undefined的典型用法?
(6)null的典型用法?
(7)chrome60+浏览器中,a===b的是哪项? -
JS的内置函数,内置对象
(1)js中有哪些内置函数/ 数据封装类对象?
(2)js中有哪些内置对象?
(3)js变量按照存储方式区分为哪些类型,并描述其特点?
(4)字符串方法/ String对象方法?
(5)数组方法/ Array对象方法?
(6)数组API?
(7)对象API? -
数组去重
(1)数组怎么去重?
(2)对上述数组去重方法速度比较?
(3)一句话数组去重?
(4)保留数组中非重复元素?
(5)保留数组中重复元素? -
JS逻辑判断
-
内存泄露
(1)哪些操作会造成内存泄漏?
(2)js内存泄漏的解决方式 -
DOM
(1)dom是哪种基本的数据结构?
(2)dom操作的常用api有哪些?
(3)dom节点的attribute和property有何区别?
(4)dom结构操作/ 怎样添加、移除、移动、复制、创建和查找节点/ dom操作的
常用api?
(5)dom事件的级别?
(6)dom事件模型?
(7)dom事件流?
(8)描述dom事件捕获的具体流程?
(9)event对象的常见应用?
(10)自定义事件/ 模拟事件?
(11)通用事件绑定/ 编写一个通用的事件监听函数?
(12)dom树、render树的关系/ dom树、render树的区别(第2、3条)? -
BOM
(1)bom常用属性? -
通信
(1)什么是同源策略及限制?
(2)前后端如何通信?
(3)跨域通信的几种方式?
(4)jsonp实现?
(5)可以跨域的三个标签?
(6)三个可跨域的标签的使用场景? -
Ajax
(1)ajax请求的原理/ 手写一个ajax请求?
(2)readyState?
(3)ajax异步与同步的区别?
(4)ajax传递中文用什么方法? -
错误监控
(1)前端错误的分类/ 如何检测js错误/ 如何保证你的产品质量?
(2)错误的捕获方式?
(3)上报错误的基本原理? -
模块化
(1)amd、cmd区别?
(2)amd、commonJs区别? -
虚拟DOM
(1)vdom的如何应用,核心api是什么?
(2)虚拟dom转换成真实dom?
(3)diff实现过程? -
JS基础
(1)对js的理解?
(2)请说出以下代码输出的值?
(3)把以下代码,改写成依次输出0-9
(4)如何区分数组对象,普通对象,函数对象
(5)面向对象、面向过程
(6)面向对象的三大基本特性
(7)XML和JSON的区别?
(8)Web Worker 和webSocket?
(9)Javascript垃圾回收方法?
(10)new操作符具体干了什么呢?
(11)js延迟加载的方式有哪些?
(12)WEB应用从服务器主动推送Data到客户端有那些方式?
2. 前端框架
Vue:
知识要点:
1. vue-cli工程
2. vue核心知识点
3. vue-router
4. vuex
5. http请求
6. UI样式
7. 常用功能
8. MVVM设计模式
React
知识要点:
1. 基本知识
2. React 组件
3. React Redux
4. React 路由
3. 前端算法
- 时间复杂度
- 位运算
- 左移 <<
- 右移 >>
- 按位操作
- 排序
- 链表
- 二叉树
- 递归
…
资料过多,篇幅有限,需要文中全部前端面试资料可以点击这里,免费获取前端面试资料PDF完整版!
自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。