面经
先这样看着吧,之后再整理一番格式以及答案
-
算法题:字母数组,输出出现最少次数的那个字母
-
ts的东西
-
Vue的 双向绑定 原理
-
Vue指令的使用
-
v-html有没有对xss做处理
-
组件间怎么通讯
-
发布订阅模式
-
业务设计:你一个带搜索框带显示列表带侧滑框的ui,你会怎么设计这个组件
-
用同步的写法,并且可以外部控制执行逻辑行进写一段异步代码, 对上一个请求有依赖的异步,请求之间还需要夹杂其他处理逻辑( es6里yield和next)
-
webpack的东西,打包流程
-
loader怎么写的
-
平时用过什么plugin
-
组件库构建,单个组件怎么设计
-
手写 Promise.all race
-
解释promise怎么做到链式调用
-
css实现0.5px的线,以及0.5px的边框
-
实现一组依次排列的方形标签,标签间隔固定6px,宽度不定,能随着屏幕宽度变化,以及每行展示个数会变化,比如屏幕宽的时候一行4或5个,窄的时候3个2个等等
-
setTimeout已经promise打印结果
-
promise then 和事件循环的考察
-
箭头函数this绑定考察
-
变量提升考察
-
hybrid原生和js的通信原理
-
算法题:树的遍历:给一个家族族谱和一个名字,查询族谱里该名字的人的年纪(族谱中有相关字段了)
-
== 隐式类型转化
-
vue v-model 原理,并手写
-
deepclone实现
-
vue组件通信
-
vue async 原理
-
移动端优化点
-
CDN原理
-
https 如何保证安全
-
http 缓存,强缓存,协商缓存
-
http code码,强缓存 code多少,协商缓存 code多少
-
实现百度图片这种样式:数据由接口获取,图片不能裁剪,不能变化顺序,可以压缩,如何实现百度图片这样的布局效果
-
vue 如何实现 view 层到viewmodel层绑定的?也就是说view变化了,怎么通知数据变化
-
Vue双向绑定原理
-
单页应用怎么路由:hash 和 history的区别,各自的原理是什么
-
项目介绍
-
图片jpg、png、SVG、webp区别
-
Webpack treeshaking 原理
-
Webpack code split
-
项目介绍
-
ES6用过哪些
-
手写Promise.all
-
HTTPS 加密解密
-
http 缓存
-
变量提升
-
BFC 和 IFC布局
-
css 实现等边三角
-
ES6用过哪些
-
手写Promise.all
-
HTTPS 加密解密
-
http 缓存
-
变量提升 let var const class function
-
Let 和 const 在浏览器层面的区别
-
BFC 和 IFC布局
-
css 实现等边三角
-
原型链
-
Set Map weekMap,Map 的原理
转转一面
1、项目介绍
2、盒子模型、怪异盒子模型
3、块元素与行内元素区别
4、是在左中右三栏布局,左右固定,中间自适应
5、new 以及实现 new
5、继承,各自的缺点
6、promise基本原理
7、数组splice方法,就是在第二个与第三个中间插入一些数据
8、冒泡机制
9、介绍一下事件循环(eventloop)
10、vue-router介绍一下
11、介绍一下vue怎么实现双向数据绑定
12、优化
13、算法:找出数组中出现字符串最多的那个是什么
14、jsonp是干什么的?跨域
15、实现这么一个动画,前一秒钟扩大两倍、后一秒种背景变颜色
转转二面:
1、为所有的组件里面的mounted里面添加一段代码?
2、vue是怎么错误捕获的?
- 项目介绍
- hybrid native JS 通信原理
- promise 打印结果:
var a = Promise.resolve(1)
var b = Promise.reject(1)
a.then(() => console.log(1))
.catch(() => console.log(2))
.then(() => console.log(3))
b.then(() => console.log(1))
.catch(() => console.log(2))
.then(() => console.log(3)) - Promise 实现一个函数,把传进去的数组按顺序先后执行,并且把返回的结果顺序放到数组中
- 实现一个函数:isEqual(),传入两个多叉树,比较两个树是否相等
- 箭头函数this的考察
- 箭头函数和普通函数的区别
高德一面
- 手写算法:两个数组一个升序一个降序,合并为一个升序数组,复杂度O(n)
- margin坍塌
- css标签类型优先级计算
- 事件循环过程
- Https 与Http 区别,SSL原理
- TCP 与 Http 区别,讲下 TCP 三次握手、四次挥手过程
- Vue 双向绑定原理
- Vue slot源码如何实现
- 项目中最具有挑战性的地方
跟谁学:
1、跨域
2、xscf攻击
3、vue-router异步
4、怎么判断一个变量是否是数组?instanceof是和谁比较
5、BFC
6、304代表什么,再引申说一下http缓存
7、实现一个三角,对角线是红色,1px宽
8、class extends是怎么实现的,原理
1、vue2.0与vue3.0的区别是什么?
2、给出海量数据,找到最大的那个值
3、webpack工作流程
3、loader与plugin的区别
4、项目的难点
5、promise写个类似于promise的
- 介绍主要的项目
- 下拉刷新组件的实现思路
- 用setTimeout实现setInterval,用两个setTimeout实现setInterval
- 给一个树,实现两个函数:1. transferTree 扁平化树,放到一个数组中,2. reverseTransferTree 把扁平化的树在复原
树的节点结构如下:
treeNode: {
id: 1,
pid: 2,
children: []
}
把扁平化的树进行还原: JS将扁平化的数据处理成Tree结构 - 杰哥斯坦森 - 博客园
- setTimeout & setInterval的区别
- position 的考察
- 实现元素的拖拽
从面相过程的拖拽到面向对象的拖拽再到简易的组件拖拽 - 掘金
class Dragable {
constructor(node) {
}
mousedown() {
}
mousemove() {
}
mouseup() {
}
} - Webpack dllPlugin 原理
- splitChunks 和 dllPlugin的区别
1、vue怎么实现双向数据绑定
2、vue-router,history与hash各自优缺点,404怎么办?
3、cookie,domain、path
4、如果语言放在服务器上面,怎么保证先执行
5、cors、jsonp各自优缺点
cors主要使用哪两个属性?区别,优缺点
Originreference
6、实现el函数
补充几个经常问的
mvvc怎么说,怎么实现怎么说
nextTick怎么说
http、HTTPS怎么说
性能优化
URL输入到输出发生了什么?
options请求方法有什么用
箭头函数和普通函数之间的区别