小库科技
- 系统内存分配
- http协议,已经https为什么更安全
- 浏览器缓存,哪几部分,协商缓存怎么处理,哪些字段标记
- 几个排序算法,哪个时间复杂度低
- 面向对象与面向函数的一些区别
- setState是同步还是异步,拿不到上下文this则同步
- useEffect与useLayoutEffect的区别
雄帝科技
- htmld的dir, http-equiv, viewport属性, script的defer,async,
- seo的优化处理
- DNS的解析过程
- 为什么用CDN可以加速?背后过程
- 几个http的状态码解释, 200, 304,301或302, 503
- 几个Http的response header的属性,
access-control-allow-origin``access-control-allow-creadientials``content-security-policy``cache-control
- serviceWorker作用,控制台里的performance,memory,security几个作用
- 浏览器几个标签打开同一个域名下的网页是否可以共享seesionStorge?
- 前端的一些安全攻击类型? xss和csrf如何防御
- 怎么实现
a == 1 && a ==2 && a ==3
为true
?
- 利用等式判定会调用
valueof
和toString
方法里处理 - 利用
defineProperty
劫持getter
处理
- 样式隔离的几种方案,vue里面什么属性可以做到样式隔离
- scope
- css里的BFC定义,怎么生成一个BFC
- 描述下react里的组件类型以及hooks作用场景
- react hook 的useEffect与useMemo的区别
- vue里面computed的实现原理
金蝶
- react当中useState会遇到什么问题,与useReduce有什么区别,useEffect有什么使用限制,与useRef有什么不同
- React hooks 怎么实现获取上一次的Props数据
- flex布局原理,内部怎么计算,等宽布局怎么设置
- 怎么判断展示dom是否在可视区域内?除了高度属性计算还有什么其他API
电信天翼云
- 跨域的问题
- node 的 npm run 做了什么处理
伴伴科技
- webpack中的model, XXX , XXX怎么配置?
- webpack打包多文件怎么配置
- 怎么设置等高等宽的div
- app内嵌h5的通信方法,原理
- 浏览器缓存机制
- 首屏加载的优化处理
- 多个img等静态资源的懒加载处理
- http请求怎么实现
虾皮
- vue组件实例化中间哪些过程?
- vue中的event bus 原理
- 发布订阅模式怎么实现,vue中在哪一步去做了收集处理
- vue diff算法过程
- vue-router有哪些模式,有什么差异
- 为什么使用dva, mobx,出于什么方面考虑
- mobx的内部实现,怎么实现通信
- 浏览器事件循环描述
- 静态资源的缓存优化
- http2.0与http1.0差异,证书加密可否仿造
- 三道代码题 ```javascript function Foo(){ log = function () { alert(1); }; return this; } Foo.log = function () { alert(2); }; Foo.prototype.log = function () { alert(3); }; var log = function () { alert(4); }; function log(){ alert(5); };
Foo.log();
log();
Foo().log();
log();
new Foo.log();
new Foo().log();
```javascript
// 实现一个函数a,使其奇数次调用时返回1,偶数次调用时返回2(不能使用全局变量)
// example
a(); // 1
a(); // 2
a(); // 1
a(); // 2
/ JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善代码中Scheduler类,
// 使得以下程序能正确输出
class Scheduler {
add(task) {
}
}
const timeout = (time) => new Promise(resolve => {
setTimeout(resolve, time)
})
const scheduler = new Scheduler()
const addTask = (time, order) => {
scheduler.add(() => timeout(time)).then(() => console.log(order))
}
// 执行
addTask(1000, '1')
addTask(500, '2')
addTask(300, '3')
addTask(400, '4')
// output: 2 3 1 4
乐信
- 前端性能优化
- 预加载解析优化
- 缓存属性设置
- 重绘与回流,transform会影响什么
联通广东研究院
- react中组件通信方式,redux怎么使用
- 微前端的理解
- 解释一下原型链
- 深拷贝与浅拷贝的区别
- webpack的plugin与loader的区别
- 页面加载顺序,css会不会影响js与dom的加载