爱奇艺前端实习生一面

爱奇艺前端开发一面:
1.了解css中的bfc吗?请详细说说

1,就答了bfc叫块级格式化上下文,是指触发bfc模式的盒子区域内部的布局不会影响到和盒子外的布局
2,答触发bfc的方式,display设置为table-cell等,定位使用绝对定位,float不为none,overflow设置为hidden等
3.应用场景:外边距合并,清除浮动,还有一个自适应两栏布局没有答上

2,css居中布局有哪些方法

1,float 。top:50%,left:50%,然后translatex:-50%,ranslatey:-50%,
2.position:absolute,假设父元素无定位,相对于body标签,top:50%,left:50%,然后translatex:-50%,ranslatey:-50%,
3.margin:auto,然后translatex:-50%,ranslatey:-50%,
4.flex布局,可以设置3个盒子,主轴排列为space-between,侧轴设置center

3,谈谈css中的伪类选择器

比较简单,说了:link,:active,:visited,:hover以及意义
然后就是:before和:after
还说了下:nth-child(n),:nth-of-type(n)

4,你知道哪些css3新属性,说说看

transition 过渡属性
animation 动画属性,关键帧和按步动画,举例18年百度官网奔跑的小熊动画
transform 2d转换,3d转换(包括translate,rotate,scale)
还说了高斯模糊filter和opcity透明度,现在才想起来不是,然后没打出来css3 boreder和背景

5,说说vue父子组件嵌套时的生命周期

答出了父组件的生命周期,然后说子组件是在父组件updated后调用的子组件的beforeupdate,这里应该不对,下来查了下在更新过程,应该是
更新过程: 父beforeUpdate->子beforeUpdate->子updated->父updated
销毁过程:父beforeDestroy->子beforeDestroy->子destroyed->父destroyed

6,说说vue响应式布局中object.definepropoty缺点和为什么用proxy

先说了下object.definepropoty的工作过程,在页面中展示某个数据时,调用get为这个调用addsu()添加一个watcher,然后改变值时,调用set(),set对比前后数据,如果发生变化,触发watcher,收集页面的所有变化,一次性render重新渲染
缺点:数据层级较深时一次性递归很麻烦,针对对象属性,无法监听数组和对象的新增和删除(这里简单说了下vue对数组方法的重写)
proxy:针对为对象本身,实现监听数组和对象的新增和删除,然后还说了一点就是proxy和object.definepropoty不同,只有在需要时才会读取对象下一层,性能更优

7,谈谈react的生命周期吧

先说了react15,组件挂载时:
constructor()
componentWillMount()
componentDidMount(),
componentWillUnmount ()
组件更新时
componentWillReceiveProps (nextProps)
shouldComponentUpdate(nextProps,nextState)
如果这里是forceupdate跳过shouldComponentUpdate
componentWillUpdate (nextProps,nextState)
render()
componentDidUpdate(prevProps,prevState)
然后说了下react16把will类的生命周期加上unsafe,新增两个生命周期
getDerivedStateFromProps(nextProps, prevState)
getSnapshotBeforeUpdate(prevProps, prevState)
最后说了下react16 为什么要这样做,强调时间切片概念,fiber树在进行update时,updatequene中任务会有优先级,所以有的任务会中断甚至重新执行,这样will类的生命周期会重复执行,而新增的生命周期是在commit阶段执行的,之执行一次

8,谈谈你都知道那些react hook

先说了为什么有hook,为了让函数式组件也能够使用class组件的一些特性
挑了几个重要的说 usestate,说了基本使用,然后说了下如果下次的state依赖于上次的state怎么办,引出了usereducer,简单做了对比
————————————————————————————
说了下useeffect,基本使用方法,三个参数意义,以及和生命周期相比的有点,然后说了说了下它会在调用一个新的 effect 之前对前一个 effect 进行清理,在渲染后执行,如果想同步在回流前执行,用uselayouteffect
————————————————————————————
然后简单说了下usecontrext和useref

9,谈谈js事件循环

从html的渲染说起,说到了栈和堆,说到整个页面的渲染可以认为是一个宏任务,然后说了任务队列,宏任务,微任务,已经所含的一些事件分类,说了执行顺序宏任务----宏任务下的微任务----下一个宏任务。最后补充在一个微任务执行后会看页面是否有resize或scroll,执行 requestAnimationFrame 回调,执行 IntersectionObserver 回调,更新界面

10,用过哪些es6新特性

剩余参数,数组解构,set数据结构,foreach,filter,map,some,every,async/await,promise
没说出来的:箭头函数,let/const,string的新方法,obj的新方法,arrayfrom。。。。

11,用过let和const吗

对比了let,const,var的含义,值是否能修改,作用区间,还有变量提升和暂存性死区

12,说说对箭头函数的理解

说了this指向,我说的是指向组函数的this,正确表达的是上下文里对象this指向,一个意思,后者更官方
说了箭头函数的简写形式和条件
说了箭头函数this一旦确定,就没法修改,即使使用显式绑定
说了为什么有箭头函数,解决闭包中this的隐式丢失

13.说说移动端响应式布局

谈了谈rem,em
谈了谈媒体查询
谈了谈 vh和vw还有calc把长和宽链接
谈了谈flex
谈了谈微信小程序中的rpx
忘了说那个物理像素比那块了

14.如何解决跨域

先说了为什么要有跨域,安全问题,防止csrf攻击
解决方案:postmessage ,domain
jsonp以及jsonp的原理
cors跨域策略,大概说了下简单请求和复杂请求的实现
proxy代理,在框架里用过,大概说了下实现
ngix反向代理,只是提了下,说属于后端,不是很理解
最后说了下跨域时候服务器是否能收到请求

15.实现这样一个函数add(1)(2)(3)()

当时没写出来

function add(n) {

  let num=(m)=>{
    if(m){
        n=m+n
        return num
    }else{
        console.log(n);
    }
  }
  return num
}

16.实现斐波那契数列

function  fiber(n) {
    if(n==1){
        return 1
    }
    if(n==2){
        return 2
    }
    if(n>2){
        return fiber(n-1)+fiber(n-2)
    }
}

总结:整体来说面试题目不是很难,而且面试官全程给人的感觉很好,基本问题都答出来了,面试的氛围还是比较轻松的,不会很压抑,很多都是基础的知识,所以基础真的很重要,问面试官对我有什么建议,面试官一笑,说:‘那就多练多学’,那就多练多学吧

#爱奇艺春招##爱奇艺##实习##面经#
全部评论
现在还招实习?
点赞 回复 分享
发布于 2021-08-02 03:04

相关推荐

这个难度和bat相比如何?一、技术原理与底层机制1. 你在项目中提到优化CLS指标,能否从浏览器渲染机制的角度解释CLS的计算逻辑?针对font-display: swap的优2化方案,当字体未加载完成时如何避免布局偏移?2. 在浮边窗组件中使用了Intersection Observer API,该API的回调触发时机如何控制?当父容器存在transform属性时,对交叉检测的准确性是否有影响?3. 你提到阅读过Vue/React源码,能否对比两者的响应式系统实现差异?Vue3的Proxy方案与React的Fiber架构在更新粒度控制上有何本质区别?二、性能优化深度追问4. 首屏渲染时间优化涉及骨架屏技术,如何保证骨架屏与真实DOM结构的尺寸一致性?当异步组件加载失败时,如何实现骨架屏到错误状态的平滑过渡?5. 火山监控SDK的JS错误率优化中,你们是如何区分"噪音错误"(如第三方库错误)与关键业务错误的?针对Script error.这类跨域错误有何具体解决策略?6. 在Vite插件开发中,如何实现资源加载失败的重试机制?请描述从拦截HTTP请求到触发重试的完整流程设计。三、架构设计与工程化7. 微前端场景下,主应用与子应用如何实现样式隔离?当使用qiankun时,如果子应用使用了React Portals等脱离DOM层级的技术,会带来哪些潜在问题?8. 部署工作台项目中提到"分支与需求一对一"的机制,当出现跨分支的需求依赖时(如需求A依赖需求B的接口),你们的版本兼容性策略是什么?9. 在脚手架工具中集成Husky时,如何处理多人协作场景下的Git Hook同步问题?当Hook脚本需要动态更新时如何保证开发者的本地环境一致性?四、AI工程化实践10. AI助手的Schema生成准确率提升方案中,如何通过Prompt Engineering解决LLM输出格式漂移问题?当遇到模型返回非法JSON结构时,你的容错机制如何设计?11. 使用SSE流式传输时,如何保证分块数据到达顺序与渲染顺序的一致性?当网络抖动导致数据包乱序时,前端应采取何种补偿策略?12. 在多轮对话链设计中,Redis缓存的会话历史如何平衡存储成本与响应速度?当用户连续操作超过Token窗口限制时,你们的上下文截断策略是什么?五、异常处理与边界场景13. Websocket心跳机制中,你提到使用指数退避算法重连,请说明具体退避策略(如初始间隔、最大重试次数)。当服务端主动断开连接时,客户端应如何区分是维护性停机还是异常故障?14. 在埋点管理系统的批量上传场景中,如何实现断点续传功能?当服务器返回429状态码时,前端应如何设计智能限流策略?15. 低代码平台的组件渲染兜底策略中,如何建立Snippets与失败组件特征的映射关系?当预置代码片段也无法渲染时,如何保障平台可用性?六、系统设计开放性题目16. 如果要求你设计一个跨团队的Chrome插件性能看板,需要聚合不同部门的监控数据,请描述你的架构设计方案,重点说明数据权限隔离、实时性保障、横向扩展能力等关键点。17. 假设需要为C端项目设计离线模式(如课程预约信息本地持久化),请阐述你的数据同步方案,包括冲突解决策略、离线状态检测机制、数据加密方案等关键设计。七、职业发展与工程思维18. 在重构低代码平台过程中,你是如何评估"逐步迁移"与"整体重构"的利弊的?当业务方持续提出新需求时,如何平衡重构进度与功能交付压力?19. 你提到在团队输出技术文章,请分享一次你通过技术布道推动团队技术决策的经历。当遇到技术方案争议时,你通常如何建立技术影响力?20. 从职业发展角度看,你未来3年希望在哪个技术领域建立深度壁垒?你目前的技术体系存在哪些短板?计划如何突破?
点赞 评论 收藏
分享
评论
3
48
分享

创作者周榜

更多
牛客网
牛客企业服务