网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 666|回复: 0
打印 上一主题 下一主题

[其他] 腾讯前端面试题

[复制链接]

535

主题

562

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
41581

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

跳转到指定楼层
楼主
发表于 2022-12-27 11:10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
· 1、标签语义化的意义是什么?
o 为了在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构。
o 用户体验,例如titlealt用于解释名词或解释图片信息、label标签的活用。
o 有利于SEO和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息,爬虫依赖于标签来确定上下文和各个关键字的权重。
o 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页。
o 便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。
· 2、常见的状态码有哪些?
o 200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果。
o 202:表示服务器已经接受了请求,但是还没有处理,而且这个请求最终会不会处理还不确定。
o 204:服务器成功处理了请求,但没有返回任何实体内容 ,可能会返回新的头部元信息。
o 301:客户端请求的网页已经永久移动到新的位置,当链接发生变化时,返回301代码告诉客户端链接的变化,客户端保存新的链接,并向新的链接发出请求,已返回请求结果。
o 304:协商缓存
o 404:请求失败,客户端请求的资源没有找到或者是不存在。
o 500:服务器遇到未知的错误,导致无法完成客户端当前的请求。
o 503:服务器由于临时的服务器过载或者是维护,无法解决当前的请求。
· 3js的执行机制是什么?
o js是单线程执行的,页面加载时,会自上而下执行主线程上的同步任务,当主线程代码执行完毕时,才开始执行在任务队列中的异步任务。具体如下:
§ 1.所有同步任务都在主线程上执行,形成一个执行栈。
§ 2.主线程之外,还存在一个"任务队列(eventloop队列或者消息队列)"。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
§ 3.一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。哪些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
§ 4.主线程不断重复上面的第三步。
· 4、怎么理解的原型和原型链?
o 原型:函数都有prototype属性,这个属性的值是个对象,称之为原型。
o 原型链:对象都有__proto__属性,这个属性指向它的原型对象,原型对象也是对象,也有__proto__属性,指向原型对象的原型对象,这样一层一层形成的链式结构称为原型链。
· 5letconstvar的区别?
o var声明变量存在提升(提升当前作用域最顶端),letconst是不存在变量提升的情况。
o var没有块级作用,letconst存在块级作用域。
o var允许重复声明,letconst在同一作用域不允许重复声明。
o varlet声明变量可以修改,const是常量不能改变。
· 6vue组件中的data为什么是函数,new Vue 实例里,data 可以直接是一个对象 ?
o 组件是用来复用的,组件中的data写成一个函数,数据以函数返回值形式定义,函数有独立的作用域,这样每复用一次组件,就会返回一份新的data,类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据。
o 而单纯的写成对象形式,由于对象是引用类型,就使得所有组件实例共用了一份data,就会造成一个变了全都会变的结果。
o 因为new vue根实例不复用,所以可以写成对象形式。
· 7computedwatch的区别?
o 计算属性computed
§ 1、支持缓存,只有依赖数据发生改变,才会重新进行计算。
§ 2、不支持异步,当computed内有异步操作时无效,无法监听数据的变化。
§ 3、如果computed需要对数据修改,需要写getset两个方法,当数据变化时,调用set方法。
§ 4computed擅长处理的场景:一个数据受多个数据影响,例如购物车计算总价。
o 侦听属性watch
§ 1、不支持缓存,数据变,直接会触发相应的操作。
§ 2watch支持异步;监听的函数接收两个参数,第一个参数是最新的值;第二个参数是输入之前的值。
§ 3immediate:组件加载立即触发回调函数执行。
§ 4deep:true的意思就是深入监听,任何修改obj里面任何一个属性都会触发这个监听器里的 handler方法来处理逻辑。
§ 5watch擅长处理的场景:一个数据影响多个数据,例如搜索框。
· 8v-ifv-show的区别,使用场景区别?
o 区别:
§ 1.实现原理:v-if是通过控制dom节点的存在与否来控制元素的显隐;v-show是通过设置DOM元素的display样式,block为显示,none为隐藏;
§ 2.编译过程:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show只是简单的基于css切换;
§ 3.编译条件:v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(编译被缓存?编译被缓存后,然后再切换的时候进行局部卸载); v-show是在任何条件下(首次条件是否为真)都被编译,然后被缓存,而且DOM元素保留;
§ 4.性能消耗:v-if有更高的切换消耗;v-show有更高的初始渲染消耗;
o 使用场景:
§ 基于以上区别,因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
o v-if判断是否加载,可以减轻服务器的压力,在需要时加载,但有更高的切换开销;v-show调整DOM元素的CSSdispaly属性,可以使客户端操作更加流畅,但有更高的初始渲染开销。如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
· 9Vue 的父组件和子组件生命周期钩子函数执行顺序?
o Vue 的父组件和子组件生命周期钩子函数执行顺序可以归类为以下 4 部分:
§ 加载渲染过程
§ beforeCreate -> created -> beforeMount -> beforeCreate -> created -> beforeMount -> mounted -> mounted
§ 子组件更新过程
§ beforeUpdate -> beforeUpdate -> updated -> updated
§ 父组件更新过程
§ beforeUpdate -> updated
§ 销毁过程
§ beforeDestroy -> beforeDestroy -> destroyed -> destroyed
更多最新在线刷面试题 前往官网:https://www.funit.cn/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 21:22 , Processed in 0.033455 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表