在这三年里,我看了大量的前端书籍,具体如下:
-
你不知道的JavaScript(上)
-
你不知道的JavaScript(中)
-
你不知道的JavaScript(下)
-
JavaScript高级程序设计(第三版)
-
高性能JavaScript
-
ES6标准入门
-
JavaScript语言精粹
-
JavaScript DOM编程艺术 第2版
-
CSS揭秘
-
高性能网站建设指南
-
高性能网站建设进阶指南
-
Web性能权威指南
功夫不负有心人,看书和做练习让我的技术水平得到了极大的提升,以至于后面对 Vue 源码的学习起到了很大的作用。
[](()库、框架
关于第三方库的学习,我只对 JQuery 和 Vue 进行了深入学习,其他的库都是看文档按需使用。 深入学习 JQuery 的成果:写了两个组件。 深入学习 Vue 的成果:
-
写了一个 Vue 动态表单组件,发布到 NPM上。
-
模仿 Vue1.0 版本写了一个 MiniVue,这让我对 Vue 的理解达到了源码级别。
-
写了几篇关于 Vue 的文章。
[](()计算机理论知识
计算机理论知识决定了一个程序员的天花板(在国内还得加上英语)。
[](()数据结构与算法
算法看了《剑指offer题解》、《Leetcode 题解》这两本书,还是挺有用的,也有刷到的题面试正好碰上了的。
[](()编译原理、计算机原理
由于编译原理和计算机原理是看的同一本书《计算机系统要素》,所以就放一起说了。
这是本神书,内容通俗易懂,涉及计算机原理、编译原理、部分操作系统知识,每一章后面都有对应的练习,需要你写代码完成。
如果完成了本书所有的项目,你将会获得以下成就:
-
构建出一台计算机(在模拟器上运行)
-
实现一门语言和相应的语言标准库
-
实现一个简单的编译器
而且,这本书的门槛非常低,只要你能熟练运用一门编程语言即可。
[](()操作系统
操作系统看了《操作系统导论》以及《深入理解计算机系统》(这本书更像是计算机导论)。
[](()计算机网络
计算机网络看了《计算机网络–自顶向下》《计算机网络–谢希仁版》,实验是按《计算机网络–自顶向下》做的。另外还深入学习了 HTTP,HTTPS,HTTP2,看的是《HTTP 权威指南》《HTTP2基础教程》。
[](()总结
计算机理论知识值得每个程序员都去认真学习。不过,持续学习并不是一件容易的事,需要你有坚定的目标和强大的自驱力。如果不想学习,可以看电影玩游戏放松一下,注重劳逸结合,不过也要警惕玩游戏上瘾,这都是血的教训总结出来的。
下面是我花了将近一个月的时间整理的一份面试题库。这些面试题,包括我本人自己去面试遇到的,还有在面试之前刷过的题目,我都统一的整理了一下,希望对大家有用。
[](()HTML
-
浏览器页面有哪三层构成,分别是什么,作用是什么?
-
HTML5的优点与缺点?
-
Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
-
HTML5有哪些新特性、移除了哪些元素?
-
你做的网页在哪些浏览器测试过,这些浏览器的内核分别是什么?
-
每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?
-
说说你对HTML5认识?(是什么,为什么)
-
对WEB标准以及W3C的理解与认识?
-
…
[](()CSS
-
解释一下CSS的盒子模型?
-
请你说说CSS选择器的类型有哪些,并举几个例子说明其用法?
-
请你说说CSS有什么特殊性?(优先级、计算特殊值)
《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 * 常见浏览器兼容性问题与解决方案?
-
列出display的值并说明他们的作用?
-
如何居中div, 如何居中一个浮动元素?
-
请列举几种清除浮动的方法(至少两种)?
-
block,inline和inlinke-block细节对比?
-
什么叫优雅降级和渐进增强?
-
说说浮动元素会引起的问题和你的解决办法
-
你有哪些性能优化的方法?
-
…
[](()JavaScript
-
js的各种位置,比如clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的区别?
-
js拖拽功能的实现
-
异步加载js的方法
-
js的防抖与节流
-
说一下闭包
-
说说你对作用域链的理解
-
JavaScript原型,原型链 ? 有什么特点?
-
请解释什么是事件委托/事件代理
-
Javascript如何实现继承?
-
函数执行改变this
-
babel编译原理
-
函数柯里化
-
说一下类的创建和继承
-
说说前端中的事件流
-
如何让事件先冒泡后捕获
-
说一下图片的懒加载和预加载
-
js的new操作符做了哪些事情
-
改变函数内部this指针的指向函数(bind,apply,call的区别)
-
Ajax解决浏览器缓存问题
-
…
[](()Vue
-
Vue中 key 值的作用
-
Vue 组件中 data 为什么必须是函数?
-
vuex的State特性是?
-
介绍一下Vue的响应式系统
-
computed与watch的区别
-
介绍一下Vue的生命周期
-
为什么组件的data必须是一个函数
-
组件之间是怎么通信的
-
Vue.cli中怎样使用自定义的组件?有遇到过哪些问题吗?
-
Vue如何实现按需加载配合webpack设置
-
简单描述每个周期具体适合哪些场景
-
scss是什么?在Vue.cli中的安装使用步骤是?有哪几大特性?
-
聊聊你对Vue.js的template编译的理解?
-
Vue 路由跳转的几种方式
-
Vue如何实现按需加载配合webpack设置?
-
Vue的路由实现:hash模式和history模式
-
Vue与Angular以及React的区别?
-
Vue路由的钩子函数
-
什么是Vue的计算属性?
-
…