讲述一下自己的实习经历,在哪实习,参与过那些项目,负责什么,做了什么,学到了什么...
属于开放性题目
能说出来三四种就可以了,但是保不齐面试官还会继续问,所以尽可能的多说几种实现方式
果不其然,这一次面试官果然就继续问了
可以参考我之前写的这一片文章,有多种详细的实现方式:
我已经说了5种css居中实现的方式了,面试官竟然说还不够
flex是一维布局系统,适合做局部布局,比如导航栏组件。
grid 是二维布局系统,通常用于整个页面的规划。
浏览器的 resize
、scroll
、keypress
、mousemove
等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能
为了优化体验,需要对这类事件进行调用次数的限制,对此我们就可以采用 防抖(debounce)
和 节流(throttle)
的方式来减少调用频率
防抖: n 秒后在执行该事件,若在 n 秒内被重复触发,则重新计时
节流: n 秒内只运行一次,若在 n 秒内重复触发,只有一次生效
有一个经典的比喻:
想象每天上班大厦底下的电梯。把电梯完成一次运送,类比为一次函数的执行和响应
假设电梯有两种运行策略 debounce 和 throttle,超时设定为15秒,不考虑容量限制
电梯第一个人进来后,15秒后准时运送一次,这是节流
电梯第一个人进来后,等待15秒。如果过程中又有人进来,15秒等待重新计时,直到15秒后开始运送,这是防抖
防抖:
节流:
防抖。
函数节流是减少函数的触发频率;
函数防抖则是延迟函数执行,并且不管触发多少次都只执行最后一次。
事件委托也称之为事件代理(Event Delegation)。 是JavaScript中常用绑定事件的常用技巧。是把原本需要绑定在子元素的响应事件委托给父元素,让父元素担当事件监听的职务。
它的原理是利用冒泡的原理,把事件加到父级上,触发执行效果。
Promise 是异步编程的一种解决方案
它是承诺,承诺它过一段时间会给你一个结果。promise有三种状态: pending(等待态),fulfiled(成功态),rejected(失败态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行。
优点:
vue是轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。
vue是单页面应用,使页面局部刷新,不用每次跳转页面都要请求所有数据和dom,这样大大加快了访问速度和提升用户体验。而且他的第三方ui库很多节省开发时间。
缺点:
seo是搜索引擎优化。在搜索引擎自然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中的关键词自然排名,获得更多的流量
单页面的内容是根据路由变化动态生成并展示出来的,很多页面的内容是通过ajax异步获取的,网络抓取工具并不会等待异步请求完成后再行抓取页面内容
解决方式可以使用SSR(服务端渲染)
或者是预渲染
vue在客户端将标签渲染成的整个 html 片段的工作在服务端完成,服务端形成的html 片段直接返回给客户端这个过程就叫做服务端渲染。
服务端渲染就是先向后端服务器请求数据,然后生成完整首屏html返回给浏览器
服务端渲染返回给客户端的是已经获取了异步数据并执行JavaScript脚本的最终HTML,网络爬虫可以抓取到完整的页面信息
SSR另一个很大的作用是加速首屏渲染,因为无需等待所有的JavaScript都完成下载并执行,才显示服务端渲染的标记,所以用户会更快地看到完整渲染的页面.
Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模版、挂载 Dom -> 渲染、更新 -> 渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。
Vue2中通过 Object.defineProperty 实现数据劫持,使得数据实现响应式更新。Object.defineProperty()方***直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
Vue3通过Proxy(代理) 拦截对象中任意属性的变化, 包括:属性值的读写、属性的添加、属性的删除等。
#面试题##快手校招##前端面经##你的秋招进展怎么样了#欢迎关注我的专栏,我会经常发布真实面试题与解析,大家一起学习共同进步,早日得到心仪的offer