字节前端一面
一面68分钟
项目相关
-
项目写了打包体积用CDN解决,就问了怎么实现、使用的
-
除了CDN还可以怎么优化打包,说了tree shaking
-
问了tree shaking的实现原理
-
tree shaking怎么使用
-
plugin和loader的区别
-
用过哪些loader,回答了css-loader和style-loader
基础问题
-
实现继承的方式,挑一两个写(写了圣杯模式和ES6的类继承),解释自己写的代码
-
因为写了call和apply的继承,所以问了apply/call/bind的区别
-
JSONP的实现原理
-
Object.defineProperty和proxy的原理和区别
-
Object.defineProperty使用的时候传递的参数是什么含义
-
什么操作Object.defineProperty监听不到,说了delete
-
那proxy是怎么监听delete的
-
vue的内置组件,刚开始没听明白,所以问了keep-alive是干啥的,怎么实现
-
知不知道VNODE,为什么要有VNODE
-
VNODE转换到真实dom的过程
-
vue的diff算法
-
为什么先深度比较
-
怎么监听hash模式下地址栏的变化(onHashChange事件
-
怎么监听history模式下地址栏的变化
// 仅仅调用pushState()方法或replaceState()方法 ,并不会触发该事件 // 只有用户点击浏览器倒退按钮和前进按钮 // 或者使用 JavaScript 调用History.back()、History.forward()、History.go()方法时才会触发。 window.onpopstate = function (event) { console.log('location: ' + document.location); console.log('state: ' + JSON.stringify(event.state)); };
-
promise为什么可以链式操作
-
promise的状态有哪些,状态的改变是可逆的吗,为什么不可逆
-
promise的静态方法
-
all和race有用过吗,分别可以用来干啥
-
页面的渲染过程,直接从HTML开始,不说HTTP的
-
上一题说到了script标签会阻塞渲染,所以问了script标签里面defer和async的区别
-
元素行内添加样式的话会在哪里执行
-
重绘和重排怎么理解
-
link会阻塞渲染吗
-
手写算法: 对比版本号,解释自己写的代码(这题写了20多分钟,我可太菜了)