基础知识
关于面试
id = 400、419、562、596

- 面试工程师(年薪20-30万) —— 以基础知识为主
- 面试技术专家(年薪30-50万) —— 以工作经验为主
- 面试架构师(年薪50万以上) —— 以解决方案为主
本教程主要针对第一种,把前端面试涉及到的基础知识讲明白,而且本教程只有 JS 相关的基础知识。工作经验这个是没法传授的,只能自己在实际工作中慢慢总结。解决方案就更是不可复制的。有没有发现 —— 越往上越无法言传,越不能结构化 —— 很简单,越复杂越多变的东西,越无法结构化
搞定所有面试题
- 拿到一个面试题,你第一时间看到的是什么?—— 应该是知识点,这道题的考点,面试官出这道题,到底想考你什么
- 又如何看待网上搜出来的永远也看不完的题海?—— 以不变应万变,看那些题目考察的知识点是什么?题可以千变万化,但是知识点就这么多
- 如何对待接下来的面试题?—— 先通过已有的题目,捋出前端考察的所有知识点(即本教程),然后再拿着这些知识点,去对应接下来的面试题
基础知识
出题
- JS 中使用
typeof能得到的哪些类型 - 何时使用
===何时使用== window.onload和DOMContentLoaded的区别- 用 JS 创建 10 个
<a>标签,点击的时候弹出来对应的序号 - 手写节流、防抖
- Promise 解决了什么问题?
题目的知识点
然后,我们把上一节每个题目考察的知识点总结一下,要核心知识点,牵强附会的先不管
JS中使用typeof能得到的哪些类型
JS 基础,变量的类型。 同类型的题目还有:如何判断一个变量是数组?值类型和引用类型的区别?如何实现深度拷贝?
何时使用===何时使用==
变量的运算,强制类型转换。 同类型的题目还有:快速将字符串转换为数字+str,以及快速将数字转换为字符串num + ''
window.onload 和 DOMContentLoaded 的区别
页面渲染过程。 同类型的题目还有:为何把<script>放在<body>底部,把 CSS 引用放在<head>中
用 JS 创建 10 个<a>标签,点击的时候弹出来对应的序号
闭包和作用域。 同类型的题目还有:jquery 或者 zepto 等为何代码都包括在一个(function(window){...})(window)中
手写节流函数
网页性能和体验优化 同类型的题目还有:防抖函数,常见的性能优化方案
Promise 解决了什么问题
异步 同类型的问题还有:异步和同步的区别,异步有哪些应用场景,定时器的使用等
前端知识体系
高效学习的方式(无论针对哪个行业都适用)
- 找准领域的范围和体系 (可见体系在其中起到了决定性作用)
- 针对每个部分刻意训练
- 在实际应用中及时反馈
那么什么是知识体系?—— 结构化的知识范围 要有两个特点
- 能涵盖所有知识点
- 结构化,有组织,易扩展 (就像我们大学要分学院、分专业、分班)
知识体系目录
- ES 基础语法(ECMA 262 标准) —— 变量、逻辑、函数、原型、闭包、异步等语法规范
- JS-WEB-API(W3C 标准)—— 如 HTML CSS JS-WEB-API(如 DOM BOM 操作) HTTP 等等
- 开发环境 —— 代码版本管理,代码架构方式、调试工具、工程化等
- 运行环境 —— 浏览器如何加载、解析和渲染页面
- 其他综合性问题,如性能优化
以上知识体系,并不是最全面的前端知识体系,而仅仅是符合我们本课程的知识体系。例如它暂时还没有 vue React nodejs 等领域的知识点
内容太多,无法在一门课中全部讲完,我会专门抽出时间,单独讲解全面的前端知识体系