2019.02.19前端面试五家后总结

为了测试过去的一年的成长,出去面试五家公司(3家创业saas公司,一家上市公司,一家跨境电商),

新的一年,要继续鞭策自己成长。

 

前端面试注意几个方面:

    1. 沟通能力

    2. 基础知识深度

    3. 解决问题的实际能力

    4. 知识边界

 

1. 沟通能力:

对问题的视角阐述是否准确容易理解。

 

2. 基础知识深度知识点考察:

2.1 执行上下文:

  执行上下文分为二个阶段(编译阶段,执行阶段)

 (1)编译阶段包括:变量对象(vo),作用域链的确定,this指向的确定。

  变量对象的组成: 1.创建arguments  》2.检查函数的声明并创建属性 》 3检测var声明并为创建属性赋值为undefined,遇到相同的属性跳过

  编译阶段的变量对象的属性是不可访问的,只有等到执行阶段才能访问。

  

 (2)执行阶段包括:变量的赋值,函数的引用,其他代码的执行。

  活动对象(ao)和变量对象(vo)的区别:都是相同的东西,只是处于执行上下文的不同的生命周期,活动对象处于执行阶段在当前函数调用栈的栈顶。  

     

2.2 闭包:

  什么是闭包?

  闭包的用途?

  闭包和匿名函数的区别?

 

2.3 模块化:

  es6的module和common.js以及amd,cmd模块化的区别?

2.4 vue生命周期:

  创建前后(el挂载点用不了),挂载前后(el,data都能使用),更新前后(虚拟dom的算法),销毁前后(销毁后钩子函数不起作用)

  父子组件的怎么传值?

  嵌套路由怎么实现?

  vuex怎么使用,由哪些组成,action是干什么的,与mutation区别?

2.5 异步的promise,async,await:

  怎么避免回调地狱?

  promise是什么?有哪些状态?

  事件循环的同步,异步,微任务,宏任务的区别?

  async返回什么?

  await在等待什么?

  await在等待到结果后又要做什么?

2.6 http1.0,1.1,2.0的协议,请求响应报文,三次握手

  短链接和长链接的区别?

  connection的keep-alive是什么?

  http2.0的特点,怎么理解多路复用?

  请求和响应报文的组成?

  输入一个url后发生什么(url是否有缓存》dns解析url为ip》tcp连接,三次握手》服务端的响应》浏览器的渲染》绘画》显示)

  强制缓存和协商缓存理解?

2.7 使用axios怎么解决跨域问题?

  proxyTable的原理?

  http-proxy-middle中间件?

2.8 webpack配置问题

  你的项目的entry有多少个?

  webpack-merge了解吗?

  是否使用过对象存储来处理图像?

  听过数据万象吗?

  怎么优化多页面的打包速度?

2.9 面向对象的问题

  es6类的静态成员和动态成员的区别?

  重点考察多态和类型的设计,比如说mixin和decorator

2.10 基础函数的考察

  map,reduce,filter,forEach, every, some

  splice,slice,parseInt,concat,join

  ['1','2','3'],map(parseInt)  为什么是 [1 ,NAN, NAN]?

 

2.11 基础的算法

  冒泡,快速,插入,归并算法,回文,数组去重

  什么是链表?

  如何实现一个hash算法?

  归并排序的复杂度?

 

2.12 前端常见的设计模式

2.13 进程和线程的区别,什么是线程同步?

 

3  解决问题的能力

  • 组件接口的设计(比如设计一个表单组件/picker) 基于react或者vue
  • 针对项目业务逻辑提具体的问题(比如怎么维持app用户的登录状态)
  • 具体的工具(webpack,gulp,git)考察具体的知识点,怎么解决冲突
  • 前端方向的把握,nodejs和typescript的学习情况
posted @ 2019-02-20 12:49  郭康勋kawhi  阅读(282)  评论(0编辑  收藏  举报