{T}

基础知识

关于面试

id = 400、419、562、596

img

  • 面试工程师(年薪20-30万) —— 以基础知识为主
  • 面试技术专家(年薪30-50万) —— 以工作经验为主
  • 面试架构师(年薪50万以上) —— 以解决方案为主

本教程主要针对第一种,把前端面试涉及到的基础知识讲明白,而且本教程只有 JS 相关的基础知识。工作经验这个是没法传授的,只能自己在实际工作中慢慢总结。解决方案就更是不可复制的。有没有发现 —— 越往上越无法言传,越不能结构化 —— 很简单,越复杂越多变的东西,越无法结构化

搞定所有面试题

  • 拿到一个面试题,你第一时间看到的是什么?—— 应该是知识点,这道题的考点,面试官出这道题,到底想考你什么
  • 又如何看待网上搜出来的永远也看不完的题海?—— 以不变应万变,看那些题目考察的知识点是什么?题可以千变万化,但是知识点就这么多
  • 如何对待接下来的面试题?—— 先通过已有的题目,捋出前端考察的所有知识点(即本教程),然后再拿着这些知识点,去对应接下来的面试题

基础知识

出题

  • JS 中使用 typeof 能得到的哪些类型
  • 何时使用 === 何时使用 ==
  • window.onloadDOMContentLoaded 的区别
  • 用 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 等领域的知识点

内容太多,无法在一门课中全部讲完,我会专门抽出时间,单独讲解全面的前端知识体系