Skip to content

Latest commit

 

History

History
662 lines (444 loc) · 20.7 KB

快速搞定前端技术一面 匹配大厂面试要求.md

File metadata and controls

662 lines (444 loc) · 20.7 KB

快速搞定前端技术一面 匹配大厂面试要求

第 1 章 课程介绍

讲师:双越

【说说面试的那些事儿】本章会出几个面试题,分析每道题目设计的知识点,然后总结出一个完整的知识体系。让我们开始 “题目->知识点->解题” 的快乐之旅吧。

1-1 导学-升级(前端面试题)

  1. 前端面试中的重要考点
    1. HTML 和 CSS
    2. 原型、作用域、异步
    3. DOM 事件和 Ajax
    4. 性能优化
    5. 各种手写代码
    6. HTTP 协议
  2. 知识点介绍
    1. CSS
      1. 布局
      2. 定位
      3. 移动端响应式
    2. ES 语法
      1. 原型、原型链
      2. 作用域、闭包
      3. 异步、单线程
    3. Web Api
      1. DOM、Bom
      2. Ajax 跨域
      3. 事件存储
    4. 开发环境
      1. 版本管理
      2. 调试抓包
      3. 打包构建
    5. 运行环境
      1. 页面渲染
      2. 性能优化
      3. Web 安全
    6. 网络通讯
      1. headers
      2. Restful API
      3. 缓存策略

1-2 看了这节课你就知道该怎么准备面试了

关于面试

  • 基层工程师:基础知识
  • 高级工程师:基础知识+项目经验
  • 架构师:解决方案能力

关于基础

  • 工程师的自我修养:基础知识
  • 扎实的基础能让你高效学习新技术

1-3 面试题和分析

题目-1

  1. typeof 能判断哪些类型?
    • 考点:JS 变量类型
  2. 何时使用===何时使用 ==
    • 考点:强制类型转换
  3. window.onloadDOMContentLoaded 的区别?
    • 考点:页面加载过程

题目-2

  1. JS 创建 10 个<a>标签,点击的时候弹出对应的序号
    • 考点:JS 作用域
  2. 手写节流 throttle、防抖 debounce
    • 考点:性能、体验优化
  3. Promise 解决了什么问题?
    • 考点:JS 异步

思考

  1. 拿到一个面试题,你第一时间看到的是什么?
    • 拿到一个面试题,第一时间看到->考点
  2. 如何看待网上搜出来的永远做不完的题海?
    • 如何看到做不完的题海->不变应万变(题可变,考点不变)
  3. 如何对待接下来遇到的面试题?
    • 如何对待接下来的题目->题目到知识点,再到题目

答案:

第四章

1-5 知识体系

什么是知识体系?

  1. 高效学习三部曲:找准知识体系;刻意训练;及时反馈
  2. 知识体系:结构化的知识范围
  3. 涵盖所有知识点;结构化、有组织、易扩展

从哪些方面梳理

  1. W3C 标准
  2. ECMA262 标准
  3. 开发环境
  4. 运行环境

知识体系

  1. CSS 基础知识
  2. JS 基础语法
  3. JS-Web-API
  4. 开发环境
  5. 运行环境
  6. HTTP 协议

第 2 章 面试前的准备

【要知己知彼,不打无准备之仗】 本章介绍面试之前你需要准备什么,以及如何解读 JD ,如何写好简历,还有些面试的注意事项。帮大家规避一些非技术的风险和问题。

2-1 面试之前需要准备你什么

2-2 投递简历的几种方式

2-3 面试的主要环节

2-4 JD 分析-知己知彼(上)

2-5 JD 分析-知己知彼(下)

2-6 如何写简历

  1. 简历包含的内容
  2. 简历中需要注意的问题
  3. 案例

简历就像高考作文——阅卷时间非常短

内容简洁

直击重点,表现出自己的优势

简历包含的内容

  • 个人信息
    • 简历内容-基本信息
      • 必备:姓名 性别 电话 邮箱 籍贯 年龄可写
  • 教育经历
    • 写上最高学历即可
    • 学校,专业,入学和毕业时间
    • 不要写上高中,显的很不专业
  • 专业技能
    • 表现出自己的核心竞争力
    • 内容不要太多,3、5 条即可
    • 太基础的不要写,例如会用 vscode
  • 项目经历
    • 写 2-4 个具有说服力的项目(视工作时间)
    • 项目描述,技术栈,个人角色
    • 技巧:可以把别人的项目写上,只要你能 hod 住
  • 工作经历
    • 如实写
    • 写明公司,职位,入职离职时间即可,多写无益
    • 如果有空窗期,如实写明即可
  • 博客和开源
    • 有博客或者开源作品,会让你更有竞争力
    • 切记:需要真的有内容,不可临时抱佛脚
    • 可以从现在开始,慢慢积累
  • 注意事项
    • 界面不要太花哨,简洁明了即可
    • 注意用词,“精通”“熟练”等慎用
    • 不可造假,会被拉入黑名单(项目经历那里,不是造假!!)

2-7 简历案例分析

2-8 面试前的准备工作和注意事项

准备工作

  • 看 JD,是否需要临时准备一下
  • 打印纸质简历,带着纸和笔
  • 最好带着自己的电脑,现场可能手写代码

面试前的注意事项

  • 要有时间观念,如果迟到或者推迟,要提前说
  • 衣着适当,不用正装,也不要太随意
  • 为何离职?——不要吐槽前东家,说自己的原因
  • 能加班吗?——能!除非你特别自信,能找到其他机会
  • 不要挑战面试官,即便他错了
  • 遇到不会的问题,要表现出自己积极的一面

第 3 章 CSS 面试题

【不多说了,前端面试 CSS 是必考知识,不过关直接回家】 本章讲解 CSS 中常考和必考的知识点,包括布局、定位、响应式等。其中会讲到很多常考问题,如 BFC、居中对齐、flex 布局等。前端一面中,CSS 一般最先考察,不过关则直接宣告失败。

3-1 html、css 面试介绍

HTML 面试题

  1. 如何理解 HTML 语义化?
    • 让人更容易读懂(增加代码可读性)
    • 让搜索引擎更容易读懂(SEO)
  2. 默认情况下,哪些 HTML 标签是块级元素、哪些是内联元素?

CSS 面试题

分析知识模块:

  1. 布局
    1. 盒子模型的宽度如何计算?
      • offsetWidth=(内容宽度+内边距+边框),无外边距
      • box-sizing:border-box,设置 width 为总宽度
    2. margin 纵向重叠的问题
      • 相邻元素的 margin-top 和 margIn-bottom 会发生重叠
      • 空白内容的<p></p>也会重叠
    3. margin 负值的问题
      • margin 的 top left right bottom 设置负值,有何效果?
      • margin-top 和 margin-left 负值,元素向上向左移动
      • margin-right 负值,右侧元素左移,自身不受影响
      • margin-bottom 负值,下方元素上移,自身不受影响
    4. BFC 理解和应用
      • 什么是 BFC?如何应用?
        • Block format context,块级格式化上下文
        • 一块独立渲染区域,内部元素的渲染不会影响边界以外的元素
      • 形成 BFC 的常见条件
        • float 不是 none
        • position 是 absolute 或 fixed
        • overflow 不是 visible
        • display 是 flex inline-block 等
      • BFC 的常见应用
        • 清除浮动
    5. float 布局的问题,以及 clearfix
      • 如何实现圣杯布局和双飞翼布局
        • 圣杯布局和双飞翼布局的目的
          • 三栏布局,中间一栏最先加载和渲染(內容最重要
          • 两侧内容固定,中间内容随着宽度自适应
          • 一般用于 PC 网页
        • 圣杯布局和双飞翼布局的技术总结
          • 使用 float 布局
          • 两侧使用 margin 负值,以便和中间内容横向重叠
          • 防止中间内容被两侧覆盖,一个用 padding 一个用 margin
      • 手写 clearfix
    6. flex 画色子
      • flex 实现一个三点的色子
        • 常用语法回顾:必须熟练掌握
          • flex-direction
          • justify-content
          • align-items
          • flex-wrap
          • align-self
        • 两端对齐
        • 垂直居中对齐
        • 水平居中对齐、尾对齐
  2. 定位
    1. absolute 和 relative 分别依据什么定位?
      • relative 依据自身定位
      • absolute 依据最近一层的定位元素定位
        • 定位元素
          • absolute relative fixed
          • body
    2. 居中对齐有哪些实现方式?
      • 水平居中
        • inline 元素:text-align:center
        • block 元素:margIn:auto
        • absolute 元素:left:50%+ margin-left 负值
      • 垂直居中
        • inline 元素:line-height 的值等于 height 值
        • absolute 元素:top:50%+ margIn-top 负值
        • absolute 元素:transform(-50%,-50%)
        • absolute 元素:top,left,bottom right = 0; margin:auto
  3. 响应式
    1. rem 是什么?
      • rem 是一个长度单位
        • px,绝对长度单位,最常用
        • em,相对长度单位,相对于父元素,不常用
        • rem,相对长度单位,相对于根元素,常用于响应式布局
          • 用 font-size 定义,对所有长度生效
    2. 如何实现响应式?响应式布局的常用方案
      • media-query,根据不同的屏幕宽度设置根元素 font-size
      • rem,基于根元素的相对单位
    3. vw/vh
      • rem 的弊端:台阶性,不同 font-size 需手动设置
      • 网页视口尺寸
        • window.screen.height // 屏幕高度
        • window.innerHeight // 网页视口高度
        • document body.clientHeight // body 高度
      • vw/vh
        • vh 网页视口高度的 1/100
        • vw 网页视口宽度的 1/100
        • vmax 取两者最大值作为单位;vmin 取两者最小值
  4. CSS3
    1. 动画
  5. 图文样式
    1. line-height 如何继承
      • 写具体数值,如 30px,则继承该值(比较好理解)
      • 写比例,如 2/1.5,则继承该比例(比较好理解)
      • 写百分比,如 200%,则继承计算出来的值(考点)

3-2 html 面试题

3-3 布局-题目

3-4 布局-解题-1

3-5 布局-解题-2

3-6 布局-解题-3

3-7 布局-解题-4

3-8 布局-解题-5

3-9 定位-解题-1

3-10 定位-解题-2

3-11 图文样式-解题

3-12 响应式-解题

3-13 2 css-响应式-vw-wh

3-14 css 面试总结

第 4 章 JS 基础-变量类型和计算

【不会变量,别说你会 JS】 本章介绍变量的类型和计算的知识点和题目,包括值类型和引用类型区别,类型判断,深拷贝等。变量和类型是一个任何一门语言的基础,不了解的话,会被认为是 JS 语法不过关。

4-1 JS 值类型和引用类型的区别

4-2 手写 JS 深拷贝

4-3 变量计算 - 注意某些类型转换的坑

4-4 变量类型相关的面试题

第 5 章 JS 基础-原型和原型链

【三座大山之一,必考!!!】 本章介绍原型、原型链和 class 相关的知识点和题目。包括 class ,继承,原型,原型链,instanceof。原型是“JS 三座大山”之一,原型和原型链也是必考知识点。

5-1 JS 原型的考点和面试题

5-2 如何用 class 实现继承

5-3 如何理解 JS 原型(隐式原型和显示原型)

5-4 instanceof 是基于原型链实现的

5-5 JS 原型本章相关的面试题

第 6 章 JS 基础-作用域和闭包

【三座大山之二,不会闭包,基本不会通过】 本章介绍作用域和闭包的知识点和题目。包括作用域,自由变量,闭包,this 等部分。作用域是“JS 三座大山”之二,不知道闭包的话,面试通过概率不大。

6-1 什么是作用域?什么是自由变量?

6-2 什么是闭包?闭包会用在哪里? 试看

6-3 this 有几种赋值情况

6-4 作用域相关的面试题 - part1

6-5 作用域相关的面试题 - part2

6-6 补充 - 原型中的 this

第 7 章 JS 基础-异步

【三座大山之三,必考!!!】 本章介绍异步的知识点和题目。包括异步和同步的区别,异步应用场景,以及 Promise 。异步是“JS 三座大山”之三,所有公司的 JS 面试,100% 会考察异步和 Promise 。

7-1 同步和异步有何不同

7-2 异步的应用场景有哪些

7-3 promise 的基本使用

7-4 JS 异步相关的面试题

7-5 JS 基础部分的考点总结

第 8 章 JS 异步进阶

【想要进大厂,更多异步的问题等着你】 JS 的特色就是异步编程,所有有很多关于异步的考点,本章都会讲解。如 event loop、promise、async-await、微任务和宏任务。学不会这些,就不算是精通 JS ,也无法进大厂。

8-1 本章考点介绍

8-2 看几个异步的面试题

8-3 什么是 event loop

8-4 event loop 的执行过程

8-5 DOM 事件和 event loop 的关系

8-6 Promise 有哪三种状态

8-7 Promise 的 then 和 catch 如何影响状态的变化

8-8 Promise 关于 then 和 catch 的面试题

8-9 async-await 语法介绍-part1

8-10 async-await 和 Promise 有什么关系

8-11 async-await 是语法糖,异步的本质还是回调函数

8-12 for-of 的应用场景

8-13 什么是宏任务和微任务

8-14 event-loop 和 DOM 渲染的关系

8-15 为什么微任务比宏任务执行更早

8-16 微任务和宏任务的根本区别

8-17 解答 JS 异步的面试题

8-18 本章考点总结

第 9 章 JS-Web-API-DOM

【学会 DOM,才能具备网页开发的基础】 本章介绍 DOM 操作的知识点和题目。包括 DOM 结构,常用 DOM 操作,DOM 性能优化等。DOM 是网页结构的基础,学会 DOM 操作才可以做网页开发。

9-1 从 JS 基础到 JS-Web-API

9-2 DOM 的本质是什么

9-3 DOM 节点操作

9-4 DOM 结构操作

9-5 如何优化 DOM 操作的性能

9-6 DOM 操作相关的面试题

第 10 章 JS-Web-API-BOM

【内容虽然不多,但是你不能不会】 本章介绍 BOM 操作的知识点和题目。本章内容虽然不多,但不可不会。

10-1 BOM 操作相关的面试题

第 11 章 JS-Web-API-事件

【事件不会,等于残废,必考!必考!】 本章介绍事件绑定的知识点和题目。包括事件绑定,事件冒泡机制,事件代理。事件能让网页和鼠标、键盘进行交互,初级 JS 面试必考。

11-1 事件绑定和事件冒泡

11-2 什么是事件代理(面试必考)

11-3 DOM 事件相关的面试题

第 12 章 JS-Web-API-Ajax

【每个工程师必须熟练掌握的技能】 本章介绍 ajax 相关的知识点和题目。包括 XMLHttpRequest ,同源策略,跨域方式,以及常用插件介绍。我们早就进入了动态网页时代,而当下的前后端分离开发方式,更加要求每个工程师必须熟练掌握 ajax 。

12-1 ajax 的核心 API - XMLHttpRequest

12-2 什么是浏览器的同源策略

12-3 实现跨域的常见方式 - jsonp 和 CORS

12-4 ajax 相关的面试题 - part1

12-5 ajax 本章相关的面试题 - part2

12-6 实际项目中 ajax 的常用插件

第 13 章 JS-Web-API-存储

【内容虽然不多,但不可不会】 本章介绍存储的知识点和题目。包括 cookie、localStorage 和 sessionStorage 。本章内容虽然不多,但不可不会。

13-1 如何理解 cookie

13-2 localStorage SessionStorage 和 cookie 的区别

第 14 章 http 面试题

【前后端分离的时代,网络请求是前端的生命线】 前端工程师做出网页,需要通过网络请求向后端获取数据,因此 http 协议是前端面试的必考内容。本章讲解 http 协议常考的知识点,如状态码、header、method、缓存等。特别是 http 缓存策略,非常重要。

14-1 http 的几个面试题

14-2 http 常见的状态码有哪些-part1

14-3 http 常见的状态码有哪些-part2

14-4 什么是 Restful-API

14-5 http 哪些常见 header

14-6 http 为何需要缓存

14-7 cache-control 是什么意思-http 强制缓存

14-8 Etag 和 Last-Modified 是什么意思-http 协商缓存

14-9 刷新页面对 http 缓存的影响

14-10 http 考点总结

第 15 章 开发环境

【不会这些,你就会被认定是菜鸟小白,没做过项目】 本章介绍开发环境相关的知识点和题目。包括 git ,调试工具,抓包工具,webpack 和 babel ,以及 linux 常用命令。熟练使用开发环境的各个工具,才能证明你真的做过前端开发,真的有项目经验,否则只能被认定为菜鸟小白。

15-1 前端开发常用的开发工具

15-2 什么是 git

15-3 git 的常用命令有哪些

15-4 git 常用命令演示

15-5 如何用 chrome 调试 js 代码

15-6 移动端 h5 如何抓包网络请求

15-7 如何配置 webpack

15-8 如何配置 babel

15-9 ES6 模块化规范是什么

15-10 如何配置 webpack 生产环境

15-11 前端用到的 linux 常用命令有哪些

15-12 开发环境的考点总结

第 16 章 运行环境

【这些会了,你就可以飞了】 本章介绍运行环境相关的知识点和题目。包括浏览器加载和渲染机制,性能优化,web 安全。网页在浏览器加载和运行,这些内容必须掌握,也是面试常考。

16-1 JS 上线之后在什么哪里运行?

16-2 网页是如何加载并渲染出来的

16-3 网页加载和渲染的示例

16-4 网页加载和渲染相关的面试题

16-5 前端性能优化有哪些方式

16-6 前端性能优化的示例

16-7 手写防抖 debounce

16-8 手写节流 throttle

16-9 如何预防 xss 攻击

16-10 如何预防 xsrf 攻击

16-11 运行环境的考点总结

第 17 章 课程总结

【很有必要带你避免面试犯低级错误】 本章回顾所有题目和知识点,总结课程内容。还会介绍一些实用的面试技巧,避免你在面试中犯一些低级错误。

17-1 课程总结~ 17-2 面试技巧

第 18 章 真题模拟

【我是来告诉你答案是什么】 本章节,通过一部分高频面试真题,带大家分析面试,以及如何解答。

18-1 章节介绍

18-2 题目讲解-1:何为变量提升?

18-3 题目讲解-2:手写深度比较 isEqual

18-4 题目讲解-3:你是否真的会用数组 map

数组 slice 和 splice 的区别

slice 不影响原元素

arr = [0, 1, 2, 3, 4, 5];
arr.slice(); // [0, 1, 2, 3, 4, 5]
arr.slice(1); //  [1, 2, 3, 4, 5]
arr.slice(1, 3); // [1, 2]
arr.slice(-2); // [4, 5]

splice 返回被剪切的元素

arr = [0, 1, 2, 3, 4, 5];
arrSplice = arr.splice(1, 1, 'o'); // [1]
console.log(arr); // [0, "o", 2, 3, 4, 5]

[10,20,30].map(parseInt) 返回结果是什么?

[10, 20, 30].map(parseInt(curr, index));
// [10, NaN, NaN]

parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数radix2-36之间的整数,表示被解析字符串的基数。

ajax 请求 get 和 post 的区别?

  • ajax 请求 get 和 post 的区别
  • get 一般用于查询操作,post 一般用户提交操作 get 参数拼接在 url 上,post 放在请求体内(数据体积可更大)
  • 安全性:post 易于防止 CSRF

18-5 题目讲解-4:再学闭包

18-6 面试讲解-5:回顾 DOM 操作和优化

如何阻止事件冒泡和默认行为?

event. stopPropagation

event. preventDefault

查找、添加、删除、移动DOM节点的方法?

如何减少DOM操作?

18-7 面试讲解-6:jsonp 本质是 ajax 吗

解释 Jsonp的原理,为何它不是真正的ajax?

  • 浏览器的同源策略(服务端没有同源策略)和跨域
  • img script 所有 src 的标签,video audio link iframe
  • 解释 jsonp原理

document load 和 ready 的区别

==和===的不同

18-8 面试讲解-7:是否用过 Object.create()

18-9 面试讲解-8:常见的正则表达式

18-10 面试讲解-9:如何获取最大值

18-11 面试讲解-10:解析 url 参数

18-12 面试讲解-11:数组去重有几种方式?

18-13 面试讲解-12:是否用过 requestAnimationFrame