大厂面经系列 | 前端 | 美团,字节,京东,顺丰,携程 等题目分享
程序员文章站
2022-06-19 15:33:57
一、HTML+CSS实现左侧固定宽度,右侧自适应的布局,有几种方式?如果用display:inline-block可以实现么?有什么问题?实现一段文本垂直上下居中有几种方式?假如设计稿的文字有6px,浏览器最小字体12px,怎么实现,(transform:scale 产生位置偏移怎么解决)用css实现一个动画,点击元素宽度从100px变成200px回流和重绘,有什么关系?position有几个属性值position:absolute是相对谁定位的移动端适配怎么做的?苹果1像素的问题二...
一、HTML+CSS
- 实现左侧固定宽度,右侧自适应的布局,有几种方式?如果用display:inline-block可以实现么?有什么问题?
- 实现一段文本垂直上下居中有几种方式?
- 假如设计稿的文字有6px,浏览器最小字体12px,怎么实现,(transform:scale 产生位置偏移怎么解决)
- 用css实现一个动画,点击元素宽度从100px变成200px
- 回流和重绘,有什么关系?
- position有几个属性值
- position:absolute是相对谁定位的
- 移动端适配怎么做的?
- 苹果1像素的问题
- css优化有了解过么
二、JavaScript
- js的基本类型
- 数组的方法有哪些?push、pop、shift、unshift、slice、splice、sort、reverse、foreach、filter、map、some、every、reduce等等都表示什么作用
- 与字符串方法split相对应数组中的方法是什么
- 翻转字符串的实现
- 手写代码多维数组降维(flat)
- this的指向有哪几种
- 接第6题引申出call、bind、apply的区别,手写call或者bind方法
- 防抖节流,手写防抖
- 事件循环eventLoop,为什么要有宏任务和微任务
- 函数去重有几种方法
- 深浅拷贝
- 怎样判断数组的类型,有几种方式,instanceof判断的返回值是什么类型
- 算法有了解过么?时间复杂度?
- 排序算法有了解过几种,冒泡排序,插入排序,快速排序等等,讲一讲其中某个排序的思路
- 函数柯里化有了解么,手写一段柯里化代码,(实现add(1)(2)的函数)
- new 做了什么
- var let const的区别
- 原型链的指向
- script标签中sync和defer的作用
- 构造函数的继承
ES6
- es6有了解过哪些?用到过什么
- 箭头函数和普通函数有什么区别
- 箭头函数this的指向,为什么不能用new
- for…in 和 for…of 的区别
- set 和 map 数据结构
三、 vue相关
- vue双向绑定的原理,包括vue 2.x和3.x
- 2.x和3.x版本有什么区别
- vue中如何检测数组变化,(延伸出)改写了哪些数组方法?
- diff算法的原理,比较方式
- 组件中的data为什么是一个函数
- vue的生命周期有哪些
- vue父子组件生命周期的调用顺序
- vue中key的作用
- 组件间通信的方式
- 当我们封装一个组件的时候怎么进行组件传参的?
- vue为什么是单向数据流
- vuex中actions和mutations的区别
- 有看过elementui的样式封装么?element-ui的原理,你是如何封装弹框中嵌套弹框这种样式的组件?
- 路由的原理,两种方式的区别
- 路由history需要后端配置什么?为什么需要后端配置
- vue什么地方用到了watch
- v-show和v-if的区别
- nextTick的原理
- 登录页的角色权限配置
- vue的性能优化
- 路由懒加载的原理
- 封装axios
- vue中.sync
Promise
- promise的原理?
- promise.all怎么实现的,为什么要用for循环?
- promise的应用场景
- promise与async/await有什么区别
- await后面的代码可以怎么改写?
- 由上一题引申出 generator,了解generator么?
- 编程题,promise实现间隔2s打印出对应的结果,最后输出done,
- 假如有两个模块,都请求同样的接口,如何设计promise只请求一次
webpack
- 项目中用webpack做了什么
- 怎么理解webpack的热更新 热替换
- loader和plugin的区别
- webpack的性能优化
微信小程序
- 微信小程序的生命周期
- 页面跳转的几种方式,有什么区别,页面栈怎么变化的
- 项目开发遇到过什么问题
- 你觉得在开发微信小程序,H5,pc端项目有什么不同
性能优化
- 性能优化都有用过哪些?
- 了解过cdn的原理么,cdn回源的原理
- 用chorme浏览器开发,network里你都会关注什么?
- 是怎么进行前端页面性能监控的,假如用户端产生bug要怎么定位到?
- 如何去排查页面中一些性能问题?
- 移动端首屏加载的时间过慢怎么处理?
- 大文件上传的解决方式
git相关的一些命令
git reset git rebase git revert
浏览器缓存和一些零散知识点
- 用chorme浏览器开发,network里你都会关注什么?
- localstorage和sessionstorage的区别,cookie中有什么?同一个浏览器打开两个同源页面,其中一个网页修改了localstorage,另一个网页怎么进行监听?
- 了解过indexdb么?
- 强缓存和协商缓存
- http的状态码
- 接口是用post请求,前端用get请求,返回什么状态码
- get和post的区别
- 了解过Nginx么
- xss攻击
- https的原理
- 后台管理系统,左侧有一级导航,二级导航,在地址栏输入对应地址如何定位到左侧导航栏
- 正则表达式有了解过么
- 视频加密,文件加密,md5?这个我没懂
- http2.0复用
- 网络安全有了解过么
编程题
- 给定起⽌日期,返回中间所有的月份; 参数是字符串格式,格式固定用-分割; 比如输入 2018-09 2019-01 ; 返回数组【2018-10 2018-11 2018-12】
- 给定一个只包括’(’,’)’,’{’,’}’,’[’,’]'的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合 2.左括号必须以正确的顺序闭合
- 获取 url 中的参数。输入 http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe key 输出 [1, 2, 3]
- 统计数组中每个字符串出现次数
/**
* 统计数组中每个字符串出现次数
* @param string[] strs: 字符串数组, 例如 ['aa', 'ab', 'ab', 'cc', 'cba']
* @return {[key: string]: number} 出现次数对象, 例如 { aa: 1, ab: 2, cc: 1, cba: 1 }
*/
- 处理给定字符串
/**
* 请处理给定字符串:
* - 去掉无用字符和乱码, 只保留大小写英文字母, 单引号, 和空格
* - 把一个或多个连续无用字符和乱码换成一个空格. 注意多个乱码只替换成一个空格
* @param str: 字符串, 例 "I'm我我我driving是to乱乱Beijing码after breakfast88"
* @return str: 例 "I'm driving to Beijing after breakfast "
*/
- 会议室 输入是一个数组, 所有会议的开始和结束时间. 输出一共需要多少个会议室
/**
* 会议室, 输入是一个数组, 所有会议的开始和结束时间. 输出一共需要多少个会议室
* @param meetings: 二维数组, 例 [[10, 20], [20, 30]],
* @return int: 需要的会议室的个数, 例 1
* 另一个测试用例: [[10,20], [19,30]] => 2
*/
- 部门安排组合
/**
* 部门安排所有组合
* @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