一面: 1. 移动端适配可以使用pxtorem将px转换为rem,因为rem相对于根元素的字体大小,可以根据屏幕大小自适应调整,而px则不具备这个特性。 2. 原生的ajax发送get请求可以使用XMLHttpRequest对象,封装可以将其封装为一个函数,只有status为200才算成功。 3. 跨域问题可以通过设置服务器响应头Access-Control-Allow-Origin来解决,或者使用JSONP等方式。 4. 组件间的css样式隔离可以使用CSS Modules、CSS in JS等方式。 5. 单独设置组件库的样式可以通过设置类名或者使用CSS变量等方式。 二面: 1. 登录鉴权可以使用token机制,续签可以在token即将过期时重新请求服务器获取新的token。 2. 手写promise.all可以使用Promise构造函数和Promise.all方法,处理传入的元素不是promise的情况可以使用Promise.resolve方法将其转换为promise。 3. 最大子数组和可以使用动态规划算法或者分治算法解决。 4. 用户行为分析平台可以采集用户的行为数据,分析用户的行为模式、偏好等信息,并输出相应的数据报告,通过数据报告来判断产品是否处于一个健康的状态。 5. webpack的使用可以通过配置文件来实现,可以使用各种loader和plugin来处理不同的文件类型和任务。 三面: 1. 我是大学期间开始学习前端的,因为对于网页设计和交互设计比较感兴趣。 2. 学习哪些知识点比较困难,我认为是异步编程和原型链等比较抽象的概念。 3. Promise原理是基于回调函数的封装,通过then方法将回调函数存储在一个队列中,等待异步操作完成后依次执行。 4. 宏任务和微任务是异步任务的两种类型,宏任务包括setTimeout、setInterval等,微任务包括Promise、MutationObserver等。 5. 路由的权限管理可以通过在路由跳转前进行鉴权判断,如果用户没有权限则跳转到登录页面或者其他提示页面。 6. PWA是一种渐进式Web应用,可以通过Service Worker等技术实现离线缓存、推送通知等功能。 7. 最近在学习Vue源码,diff算法流程是先进行同层级的节点比较,如果不同则直接替换,如果相同则继续比较其子节点。 8. Web缓存系统需要注意缓存的有效期、缓存的清理机制、缓存的存储方式等问题,大致的逻辑是先判断是否有缓存,如果有则直接返回缓存数据,如果没有则请求服务器并将响应数据缓存起来。
12 1

相关推荐

牛客热帖

牛客网
牛客企业服务