从面试看出来的前端问题

前端工作三年多,可是再次去面试的时候,面试官问的很多基础问题,比如es 6的promise三种状态 ,let var. const 的区别,比如http s 的三次握手,比如react 的生命周期,怎么组织react 的render ,同级组件怎么相互传值,比如深拷贝和浅拷贝,比如闭包?这些问题都答不上来,感觉平时码代码没有问题,但是面试官问的时候总是答不出来所以然,怎么办?感觉很迷茫

阅读 4.9k
10 个回答

给你分享下我积攒的面试题目吧:

JavaScript:

  1. 原型继承(手写 class B 继承 class A)
  2. call、apply、bind 区别
  3. 解释什么是闭包及其应用
  4. 变量作用域 + 变量提升
  5. 字符串整型数字转数字有多少种实现方法(隐式转换)
  6. 异步编程(回调、promise、async await)(js 单线程 event loop)(手写原生实现简易 promise)
  7. js 事件模型(手写原生实现简易事件监听)
  8. localStorage、cookie(与缓存相关的 cookie 有哪些)
  9. csrf、xss、https(网络安全)
  10. 跨域请求如何实现

ES6:

  1. let、const(for 循环示例)
  2. set、map
  3. 箭头函数 this 的特点
  4. 常用语法有哪些

布局:

  1. 水平垂直居中(定尺寸、不定尺寸)
  2. flex(等高布局、自适应布局、垂直居中)
  3. 自适应正方形(padding、vw)
  4. 移动端屏幕适配(如何实现 rem)(如何实现 1px border)
  5. 清浮动有哪些方法(涉及 BFC)

Vue:

  1. vue 响应式原理
  2. 计算属性、watch 差别
  3. vue 生命周期
  4. 非继承关系组件通讯(vuex、发布订阅)

编程:

  1. 数组去重(数组项类型多样)
  2. 求无序数值数组序列最大值
  3. 常用数组操作有哪些(哪些破坏原结构)
  4. 排序算法(涉及复杂度)
  5. 位运算(两数之和)(成对数值数组寻单)
  6. 斐波那契数列
  7. 阶乘
  8. 反转链表
  9. 遍历 dom 树(广度优先、深度优先)

其它:

  1. html5 新特性有哪些(语义化标签、音视频、缓存...)
  2. hybrid 与 native 通讯方式有哪些(混合开发有什么优势)(如何实现热更新)
  3. 遇到过哪些 ios、android 兼容问题
  4. sass、less、postcss(作用、优点)
  5. 对 webpack 的理解及使用
  6. 开启一 html 经历哪些
  7. 性能优化(图片处理:webp、base64、合并、压缩、延时加载...)(预渲染)(静态资源体积减小)(资源异步加载)(资源缓存)
  8. git 常用命令(git revert、git reset 区别)
  9. 微信授权登录流程(openid、unionid 区别)
  10. AMD、CMD(require()、import、import() 应用场景)

实践:

  1. 富文本混入多种类型卡片的实现
  2. 纯 css 绘制正六边形(一个标签实现)(svg、裁切亦可)
  3. 纯 css 绘制进度圆环(应用于任务中心)(svg、裁切亦可)
  4. 如何实现拖拽

懂得原理才能做出好的东西啊,debug时不懂原理都不知道问题在哪,如何解决问题?什么时候基础都时最重要的。

同三年,我做的是ionic开发,rn没怎么用过。
rn外的其他问题除了三次握手,话说握手应该是tcp层的东西把,只知道消耗很大,所以善用长链接可以某些情况下可以优化性能。其他问题我都觉得是基础的不能再基础的问题了。。。

promise那东西,你自己照着文档实现一个promise就理解了,并不难。主要是resolv值的处理过程,还有几个静态和公用方法。如果你js基础好,看着文档估计一天就能写出来。
其他的都是js语言核心的基础问题,而且你列的这几个也不是特别偏的js语言基础问题,啃书就行了。反正犀牛书这本书,语言核心部分我看了3遍,客户端js部分看了2遍。。。

除了框架的问题,其他的问题都是js基础,都应该掌握的。虽然您工作了三年多,但是不一定系统地学习,建议面试前还是花些时间刷一下面试题。

现在这种状态是不是错误的?在工作的时候不注意这些基础的问题,总是一味地去写代码!
面试前一定要刷面试题么?我该如何在工作的时候注意这些基础知识呢?

从业两年半,说来惭愧,除了let const和闭包,其他的别说答上来了,在项目中都没用过,感觉再不学习就要被淘汰了,向楼主和@呆恋小喵学习,两位妹子都比我强这么多。

我最近面试了好几家公司,面试的形式都不太一样,有注重问基础的,有偏向于问框架的,不过还要问到框架的原理,还有问项目的,还有问的是简历上提及的,感觉能力是平时一点一滴积累的,不然面试的时候总会有很多不会的

不能只关注平常工作中遇到的问题和用到的技术,新的东西也要时不时的看看,不然的话很容易脱节的,现在前端技术更新的太快了。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题