欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

大厂面经系列 | 前端 | 美团,字节,京东,顺丰,携程 等题目分享

程序员文章站 2022-03-22 10:37:04
一、HTML+CSS实现左侧固定宽度,右侧自适应的布局,有几种方式?如果用display:inline-block可以实现么?有什么问题?实现一段文本垂直上下居中有几种方式?假如设计稿的文字有6px,浏览器最小字体12px,怎么实现,(transform:scale 产生位置偏移怎么解决)用css实现一个动画,点击元素宽度从100px变成200px回流和重绘,有什么关系?position有几个属性值position:absolute是相对谁定位的移动端适配怎么做的?苹果1像素的问题二...

一、HTML+CSS

  1. 实现左侧固定宽度,右侧自适应的布局,有几种方式?如果用display:inline-block可以实现么?有什么问题?
  2. 实现一段文本垂直上下居中有几种方式?
  3. 假如设计稿的文字有6px,浏览器最小字体12px,怎么实现,(transform:scale 产生位置偏移怎么解决)
  4. 用css实现一个动画,点击元素宽度从100px变成200px
  5. 回流和重绘,有什么关系?
  6. position有几个属性值
  7. position:absolute是相对谁定位的
  8. 移动端适配怎么做的?
  9. 苹果1像素的问题
  10. css优化有了解过么

二、JavaScript

  1. js的基本类型
  2. 数组的方法有哪些?push、pop、shift、unshift、slice、splice、sort、reverse、foreach、filter、map、some、every、reduce等等都表示什么作用
  3. 与字符串方法split相对应数组中的方法是什么
  4. 翻转字符串的实现
  5. 手写代码多维数组降维(flat)
  6. this的指向有哪几种
  7. 接第6题引申出call、bind、apply的区别,手写call或者bind方法
  8. 防抖节流,手写防抖
  9. 事件循环eventLoop,为什么要有宏任务和微任务
  10. 函数去重有几种方法
  11. 深浅拷贝
  12. 怎样判断数组的类型,有几种方式,instanceof判断的返回值是什么类型
  13. 算法有了解过么?时间复杂度?
  14. 排序算法有了解过几种,冒泡排序,插入排序,快速排序等等,讲一讲其中某个排序的思路
  15. 函数柯里化有了解么,手写一段柯里化代码,(实现add(1)(2)的函数)
  16. new 做了什么
  17. var let const的区别
  18. 原型链的指向
  19. script标签中sync和defer的作用
  20. 构造函数的继承

ES6

  1. es6有了解过哪些?用到过什么
  2. 箭头函数和普通函数有什么区别
  3. 箭头函数this的指向,为什么不能用new
  4. for…in 和 for…of 的区别
  5. set 和 map 数据结构

三、 vue相关

  1. vue双向绑定的原理,包括vue 2.x和3.x
  2. 2.x和3.x版本有什么区别
  3. vue中如何检测数组变化,(延伸出)改写了哪些数组方法?
  4. diff算法的原理,比较方式
  5. 组件中的data为什么是一个函数
  6. vue的生命周期有哪些
  7. vue父子组件生命周期的调用顺序
  8. vue中key的作用
  9. 组件间通信的方式
  10. 当我们封装一个组件的时候怎么进行组件传参的?
  11. vue为什么是单向数据流
  12. vuex中actions和mutations的区别
  13. 有看过elementui的样式封装么?element-ui的原理,你是如何封装弹框中嵌套弹框这种样式的组件?
  14. 路由的原理,两种方式的区别
  15. 路由history需要后端配置什么?为什么需要后端配置
  16. vue什么地方用到了watch
  17. v-show和v-if的区别
  18. nextTick的原理
  19. 登录页的角色权限配置
  20. vue的性能优化
  21. 路由懒加载的原理
  22. 封装axios
  23. vue中.sync

Promise

  1. promise的原理?
  2. promise.all怎么实现的,为什么要用for循环?
  3. promise的应用场景
  4. promise与async/await有什么区别
  5. await后面的代码可以怎么改写?
  6. 由上一题引申出 generator,了解generator么?
  7. 编程题,promise实现间隔2s打印出对应的结果,最后输出done,
  8. 假如有两个模块,都请求同样的接口,如何设计promise只请求一次

webpack

  1. 项目中用webpack做了什么
  2. 怎么理解webpack的热更新 热替换
  3. loader和plugin的区别
  4. webpack的性能优化

微信小程序

  1. 微信小程序的生命周期
  2. 页面跳转的几种方式,有什么区别,页面栈怎么变化的
  3. 项目开发遇到过什么问题
  4. 你觉得在开发微信小程序,H5,pc端项目有什么不同

性能优化

  1. 性能优化都有用过哪些?
  2. 了解过cdn的原理么,cdn回源的原理
  3. 用chorme浏览器开发,network里你都会关注什么?
  4. 是怎么进行前端页面性能监控的,假如用户端产生bug要怎么定位到?
  5. 如何去排查页面中一些性能问题?
  6. 移动端首屏加载的时间过慢怎么处理?
  7. 大文件上传的解决方式

git相关的一些命令

git reset git rebase git revert

浏览器缓存和一些零散知识点

  1. 用chorme浏览器开发,network里你都会关注什么?
  2. localstorage和sessionstorage的区别,cookie中有什么?同一个浏览器打开两个同源页面,其中一个网页修改了localstorage,另一个网页怎么进行监听?
  3. 了解过indexdb么?
  4. 强缓存和协商缓存
  5. http的状态码
  6. 接口是用post请求,前端用get请求,返回什么状态码
  7. get和post的区别
  8. 了解过Nginx么
  9. xss攻击
  10. https的原理
  11. 后台管理系统,左侧有一级导航,二级导航,在地址栏输入对应地址如何定位到左侧导航栏
  12. 正则表达式有了解过么
  13. 视频加密,文件加密,md5?这个我没懂
  14. http2.0复用
  15. 网络安全有了解过么

编程题

  1. 给定起⽌日期,返回中间所有的月份; 参数是字符串格式,格式固定用-分割; 比如输入 2018-09 2019-01 ; 返回数组【2018-10 2018-11 2018-12】
  2. 给定一个只包括’(’,’)’,’{’,’}’,’[’,’]'的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合 2.左括号必须以正确的顺序闭合
  3. 获取 url 中的参数。输入 http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe key 输出 [1, 2, 3]
  4. 统计数组中每个字符串出现次数
 /**
  * 统计数组中每个字符串出现次数
  * @param string[] strs: 字符串数组, 例如 ['aa', 'ab', 'ab', 'cc', 'cba']
  * @return {[key: string]: number} 出现次数对象, 例如 { aa: 1, ab: 2, cc: 1, cba: 1 }
*/
  1. 处理给定字符串
/**
   * 请处理给定字符串:
   *   - 去掉无用字符和乱码, 只保留大小写英文字母, 单引号, 和空格
   *   - 把一个或多个连续无用字符和乱码换成一个空格. 注意多个乱码只替换成一个空格
   * @param str: 字符串, 例 "I'm我我我driving是to乱乱Beijing码after breakfast88"
   * @return str: 例 "I'm driving to Beijing after breakfast "
 */
  1. 会议室 输入是一个数组, 所有会议的开始和结束时间. 输出一共需要多少个会议室
/**
    * 会议室, 输入是一个数组, 所有会议的开始和结束时间. 输出一共需要多少个会议室
    * @param meetings: 二维数组, 例 [[10, 20], [20, 30]],
    * @return int: 需要的会议室的个数, 例 1
    * 另一个测试用例: [[10,20], [19,30]] => 2
*/
  1. 部门安排组合
 /**
     * 部门安排所有组合
     * @param departments: dict, key是部门名, value是每个部门对应所有员工ID数组
     *   例 {'frontend': [1, 2], 'backend': [3, 4], 'devops': [5]}
     * @param required_department: dict, 该任务需要参与的部门和需要的人数
     *   例 {'frontend': 2, 'backend': 1}
     * @return 所有可能的员工组合, 例 [[1, 2, 3], [1, 2, 4]]. 按员工ID升序排序
 */

写在最后,暂时整理到这么多,后续会继续来更新

本文地址:https://blog.csdn.net/qq_24692477/article/details/111997048