# 说说面试的那些事儿

代码笔记 (opens new window)

# 1. 前端面试重要考点

  • html、css
  • 原型、作用域、异步
  • DOM事件、Ajax、跨域
  • 性能优化
  • 各种手写代码
  • HTTP协议

# 2. 知识点

  • CSS
    • 布局
    • 定位
    • 移动端响应式
  • ES语法
    • 原型、原型链
    • 作用域、闭包
    • 异步、单线程
  • webApi
    • DOM、BOM
    • Ajax跨域
    • 事件存储
  • 开发环境
    • 版本管理
    • 调试抓包
    • 打包构建
  • 运行环境
    • 页面渲染
    • 性能优化
    • web安全
  • 网络通讯
    • headers
    • RestfulApi
    • 缓存策略

# 3. 关于面试

# 3.1. 面试层级

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

# 3.2. 关于基础

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

# 4. 面试题

# 4.1. 系列1

  • typeof能判断哪些类型
  • 何时使用===,何时使用==
  • window.onload和DOMContentLoaded的区别

# 4.2. 系列2

  • JS创建10个<a>标签,点击的时候弹出对应序号
  • 手写节流throttle、防抖debounce
  • Promise解决了什么问题

# 5. 思考

  • 拿到一个面试题,第一时间看到的是什么
  • 如何看待网上搜出来的永远做不完的题海
  • 如何对待接下来遇到的面试题

# 6. 如何搞定所有面试题

解决上面的问题

  • 拿到一个面试题,第一时间看到 => 考点
  • 如何看待网上搜出来的永远做不完的题海 => 不变应万变
    • 题可变,考点不变
  • 如何对待接下来遇到的面试题 => 题目到知识点,再到题目

# 7. 判断之前面试题的考点

# 7.1. 系列1

  • typeof能判断哪些类型
    • 考点:JS变量类型
    • 由考点延伸出的知识点
      • 值类型和引用类型的区别
      • 引用类型的拷贝如何去做深拷贝
      • 如何判断一个数据是不是数组或是不是对象
      • ......
  • 何时使用===,何时使用==
    • 考点:强制类型转换
    • 由考点延伸出的知识点
      • 字符串拼接有强制类型转换
      • if{}else{}逻辑判断的时候会有强制类型转换
      • ......
  • window.onload和DOMContentLoaded的区别
    • 考点:页面加载过程
    • 由考点延伸出的知识点
      • 为什么我们要把css加载放到head里面,把js加载放在body下面

# 7.2. 系列2

  • JS创建10个<a>标签,点击的时候弹出对应序号
    • 考点:JS作用域
    • 由考点延伸出的知识点
      • 闭包
      • ......
  • 手写节流throttle、防抖debounce
    • 考点:性能、体验优化
    • 由考点延伸出的知识点
      • 其他的解决性能和体验优化的方法有哪些
      • ......
  • Promise解决了什么问题
    • 考点:异步
    • 由考点延伸出的知识点
      • 异步和同步有什么区别
      • 为什么会有异步,异步的应用场景是什么
      • 定时器该如何去使用
      • ......

# 8. 一面中涉及到的前端知识体系

# 8.1. 什么是知识体系

  • 知识体系:结构化的知识范围
    • 涵盖所有知识点
    • 结构化、有组织、易扩展
  • 高效学习三部曲:找准知识体系、刻意训练、及时反馈
    • 只要是一个以知识以技术组成的行业,就必定有他自己的知识体系
    • 在一个行业领域,都要先找准知识体系
    • 针对知识体系里面的每一个知识点每个动作,一个一个地反复练习,不要偷懒
    • 工作、实际做项目、面试、写文章供别人评论,或者在社区里面交流,通过这些途径,输出自己的学习成果,接收到别人对你的评价,即及时反馈

# 8.2. 从哪些方面梳理

  • 从行业标准去思考:W3C标准
  • ECMA 262标准
    • js的语法规范,诸如ES6、ES7规范
  • 开发环境
    • 我们需要在什么基础上写一些代码(脚手架之类)
  • 运行环境
    • 我们的代码需要在哪些地方运行
    • 运行的时候会不会出现什么问题,以及该如何去优化

# 9. 知识体系目录

  • CSS基础知识
  • JS基础语法
    • 原型、异步……
  • JS-Web-Api
    • js如何去操作dom、bom、如何去做数据通讯,如何添加dom事件……
  • 开发环境
  • 运行环境
  • HTTP协议

# 10. 思维导图

interview

# 11. 使用http-server启前端服务

  • npm install -g http-server
  • cd到某个目录
  • http-server -p 8881


~End~