2023最新前端高频面试题及答案(轻松拿捏面试官)

这篇具有很好参考价值的文章主要介绍了2023最新前端高频面试题及答案(轻松拿捏面试官)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

废话就不多说了直接上题

set和map的区别?

   set:

    (1)成员是不可以重复的

    (2)只有键值没有键名,类似数组

    (3)可以遍历,方法有add,delete,has

  map:

    (1)本质上是键值对的集合,类似集合

    (2)可以遍历,可以跟各种数据格式转换

for in,for of,forEach三者区别? 

forEach用于遍历数组且不能使用return

for in常用于遍历对象或者json

for of数组对象都可以遍历,遍历对象需要通过object.keys() 

for in循环的是key,for of循环的是value

原生ajax的原理及请求五个步骤?

   流程: 创建xmlhttprequest对象,向服务端发送请求,返回数据数据由js加css处理,从而渲染       dom。

   五大步骤: 创建request对象,设置请求地址和方法,用send发送请求,监听状态变化,接受返回的数据并处理。

浏览器的强缓存与协商缓存 ?

     强缓存:不用服务器通讯直接使用本地缓存资源 

     协商缓存:将所有缓存发送给服务器让服务器判断是否更新,若已更新就会返回更新后的资源,没有更新的话返回304状态码告诉浏览器使用本地缓存就可以,整个过程至少是跟服务器通信一次的。

vue和uniapp的区别及优缺点 ?

      uniapp的写法是基于vue的写法,上手快并且支持app原生功能,uniapp不能使用router,自带路由跳转和请求方式,布局标签使用view text并且支持嵌套原生写法, 可以通过打包实现一套代码可以在多端运行,而vue是不支持的。

优缺点:

      vue语法简单上手容易许多的插件可以实现项目功能采用虚拟dom来管理页面大大提高性能恩特用户体验度较好,内容改变不会加载整个页面,架构较为清晰

    初次加载性能消耗较大,不支持浏览器的前进后退按钮 ,不利于seo优化(可以通过ssr渲染解决问题)所以页面都在一个页面中,对象初始化后新增属性不会更新到视图

CSRF攻击是什么?

     CSRF是指未经用户允许,偷偷使用用户名义发送恶意请求攻击。通常借助用户cookie来骗取服务端信任,特点是并不能获取cookie只能使用发生在第三方域名

cookie如何防范xss攻击?

    xss(跨域脚本攻击)是指攻击者在返回的HTML中嵌套js脚本,为了减轻这些攻击可以在请求头配置setcookie他有二个属性httponly这个属性告诉浏览器可以防止xss,他会禁止js脚本访问cookie

 

Priomse是什么?他有几种方法?解决了什么问题呢?

    priomse主要用来获取异步操作信息,解决了回调地狱问题,本身是有all、reject、resolve、race、使用New创建Priomse实例对象会立即执行,一旦新建执行不会被改变,如果不设置回调的话Priomse内部不会向外界抛出错误,当pening状态时我们不知道目前哪一个阶段。all方法当多个priomse同时执行时其中一个失败就会返回失败,race方法多个priomse组合同时执行时返回响应最快那个。原型上有then catch finally方法,priomse有三种状态pening、fulifed、rejected

http1和http2的主要区别?

     2.0支持二进制分帧,而不是1.0文本格式

     2.0支持服务端推送,可以提前发送资源,而不需要向客户端请求

     2.0在请求头进行压缩,减少请求数量优化了带宽使用率

js的有几种继承方式?

    原型链继承  构造函数继承  组合式继承  寄生组合继承

vue首屏优化是怎么做的?

    vuecli开启打包压缩、路由懒加载  分包 、打包时配置除掉console、 资源过大时候使用CDN加速,不在打包本地

异步操作放再created还是moutend?

    如果某些数据需要初始化渲染时候,比如下拉选择可选值在mouted较好好处是页面初始化快减少用户等待,在created一致性,因为ssr不支持mouted beformouted

splice 和 slice什么区别?

    slice切片的意思根据传入的起始和终止下表,获取该范围数组。

    splice可以根据传入参数个数不同实现删除插入操作,直接操作原数组。

webpack的理解?

      webpack是一个打包js代码的工具,在webpack里面一切文件都是模块,通过loader转换文  件,通过plugin注入钩子函数,loader主要是用来转换js json文件,内部有cssloader eslintloader、lessloader等执行顺序是从下而上从左到右,plugins用解析html文件,最后输出多个模块化组成文件提供浏览器解析,

原型是什么??原型链是什么?

     使用new创建的对象叫做构造函数,在js里每一个函数都有prototype的属性这个属性是一个原型对象,原型对象上有constructor属性,指向构造函数,通过原型对象可以访问对象的属性和方法,每一个实例对象都proto属性指向的是自己构造函数原型prototype

   原型链是指如果想要查到对象某一个属性,自己和原型上都没有,那就向他原型proto上找,如果还是找不到知道顶层。

数组常用方法那些不会改变原数组那些会改变?

    会改变:pop  push sort  splice    不会改变:concat  some join indexof

js md5加密?

    密码等这些敏感私密的信息在传输明文时信息很不安全,所以会用到md5加班密,可以使用js-md5实现加密

HTML语义化标签的理解?

     header  footer  

     语义化标签是html的标签能够更好的适合搜索引擎检测,有利于爬虫获取信息,利于团队开发

BFC的理解及是什么呢?

      BFC是块级格式化上下文,浮动元素,绝对定位,块级元素会引起BFC

     解决办法:清除浮动,防止margin合并

New做了什么?

      创建临时null对象;绑定原型;执行构造函数;返回临时对象;

构造函数与普通函数有什么区别?

       1.构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写。

       构造函数和普通函数的区别在于:调用方式不一样,作用也不一样(构造函数用来新建实象)

        a.普通函数的调用方式:函数明()   构造函数调用方式:new  来调用

       b. 普通函数没有返回值所以为undefined ,构造函数会创建新对象,并将该对象作为返回值

vue实例的生命周期有哪些并且是出过程?

      beforeCreated这时候vue实例的元素el和数据对象data都还没有进行初始化,还是一个undefined状态

     created阶段vue实例的数据对象data已经有了,可以访问里面的数据和方法,el还没有,也没有挂载dom

     beforeMount这时候vue实例的元素el和数据对象都有了,只不过在挂载之前还是虚拟dom节点

     mounted此时vue实例已经挂载到真实dom上可以操作dom获取节点了

     beforeUpdate响应式数据更新时调用,发生在虚拟dom打补丁之前,适合在更新之前访问现有的dom,比如手动移除已经添加时间监听

     update虚拟dom重新渲染和打补丁之前调用,组成新的dom已经更新,避免在这个钩子函数中操作数据防止死循环

     beforeDestroy 这时候vue实例在销毁前调用,在这里还可以使用,通过this可以访问到实例,可以在这里对不用的定时器清除,解绑事件

     destroyed销毁后调用,调用后所有事件监听会被移除,所有的子实例都会被销毁

你了解vue路由的两种模式吗?

    1. hash模式

            特点:在url地址上有#号

             实现原理是原生haschange事件来实现监听hash值的变化

            window.onhaschange=function(){}

            刷新页面的时候:不会去发送请求,页面不会有任何问题,且不需要后端配合

    2. history模式

            特点:在url地址上没有#号,

            实现原理:利用的是history的api来pushState()来实现的

            刷新页面的时候会发送请求然后会导致页面出现找不到情况,需要后端配合解决

可以说一下防抖节流区别吗?

    防抖:触发高频率后n秒,只执行一次,并且是在触发操作结束后执行,如再次执行就重新计算

    实现思路:首次运行时吧定时器赋值给一个变量,第二次进入时,如果间隔没有超过定时器事件则会清楚定时器,当我们停止下来时,超过一定时间后触发回调

    场景:滚动条事件,搜索

    节流:是将多次执行变成每隔一段时间执行,也可以理解为只执行第一次

    实现思路:设置变量,限制true才能进去函数,进入后变为false,设置定时器在规定时间后进入执行触发,使用闭包存储变量。

    场景:表单提交,发送验证码

二者都是为了降低回调执行频率,及资源

uniapp的渲染机制?

  uniapp分为视图层和逻辑层,逻辑层负责数据存储和执行业务逻辑,视图层负责页面渲染

你都封装过那些组件?

    首页列表,loading,详情,轮播。

有做过动态路由吗?

   实现动态路由有二种方式:一种是存储在前端,另一种存储在后端数据库

   一般我们在登录的时候,根据用户登录的角色返回此角色可以访问的页面路由,前端将路由存储在vuex要持久存储才行createPersistedState(插件持久化存储),我们在路由前置守卫处添加拿到的路由,对页面进行渲染

小程序的分包操作怎么做的?

   因为小程序是有2M的限制这导致我们在开发种会有限制,如果使用分包就会翻10倍,分包是按需假装默认下载主包并且启动主包减少小程序首次下载时间,其次进入分包。在app.js里面全局配置分包subpackages与pages同级,注意点:tabBar必须在主包内,分包不能嵌套,主包不能使用分包资源。

说几个canvas常用api?

     getContext 、 moveTo、lineTo、closePath、stroke、arc

vue2、3有什么区别呢?

   vue2 的双向数据绑定是利⽤ES5 的⼀个 API ,Object.defineProperty()对数据进⾏劫持 结合 发布订阅模式的⽅式来实现的。

  vue3采用ES6的Proxy反向代理对数据进行劫持,通过reactive()函数给每一个对象都包一层Proxy,通过Proxy监听属性的变化,从而实现对数据的监控,且重写了DOM

总结:2.0的双向绑定不能对全对象监听3.0对这方面做出了优化可以直接监听数组不用在去特意操作数组,通过Proxy可以直接拦截所有对象类型数据的操作通过Reacft.onkey映射,完美⽀持对数组的监听。

vue2如果new一个对象话所有的东西都会被绑定在实例上,这样无论用到还没有用到都会被运行一边,这样会很大的性能消耗,且用户体验度不佳。

vue3利用按需引入减少性能消耗提高用户体验。

vue2的生命周期是

 beforeCreated Created beforeMount  onMounted  beforeUpdate  update             beforeDestroy Destroy

vue3的生命周周期也有所改变

   onBeforeMount  onMounted  onBeforeUpdate onUpdated  onBeforeunMount  onunMount  

2.0在子页面可以直接拿到prop传来的值      3.0则需要setup来传递

Api方面2.0选用选项型api                        3.0则是合成型api

父亲组件传值$emit()

2023最新前端高频面试题及答案(轻松拿捏面试官),面试题,前端开发,前端,javascript,vue.js,reactjs,css

 vue3中有watchEffect监听函数,watchEffect函数不需要传入依赖项,watchEffet非常智能与wacth相比watchEfft的回调函数会被立即执行且必须是响应式依赖,watch需要添加immediate:true,

props中数据是单项的,子组件是不可以改变父亲组件传来的值的,在vue3中子组件如果想改变props的值时需要toRef转化为响应式数据

setup函数,ref函数,reactive函数?

    setup是vue3.0的一个配置项,值是一个函数,所有数、方法等代码都要写在里面且需要retrun,setup有二种返回值第一种如返回一个对象,则对象种的数据、和方法在模板中可以直接使用,第二种返回一个渲染函数,则可自定义渲染内容

vue开发重点注意部分

      2.0和3.0不要混用,如混用setup中访问不到2.0的数据和方法,

      如果有命名重复setup优先,

       setup不能是一个async(异步函数),因为如果是异步函数返回值则是promise,而不是                   return的对象

以上有不对或者需要改善地方,欢迎指正,谢谢大家。文章来源地址https://www.toymoban.com/news/detail-609911.html

到了这里,关于2023最新前端高频面试题及答案(轻松拿捏面试官)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端vue3面试题】2023最新面试实录vue3.0,高频10问(持续更新...)

    前端vue3面试题 2023最新面试实录vue3.0,高频10问(持续更新…) 1问: vue3和vue2有哪些不同? 响应式系统的重构,使用proxy替换Object.defineProperty属性,优势: Proxy可直接监听 对象 添加/删除 属性; Proxy直接监听 数组的变化 Proxy监听的目标是对象本身,不需要像Object.defineProperty那样遍

    2023年04月14日
    浏览(50)
  • Spring Cloud面试题及答案(2022最新版)

    最近一个月几乎每天都在面试,最终皇天不负有心人,终于拿到offer了。 整理了一些2022年最新的Spring Cloud面试题及答案,分享给大家~ Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的 集成。Spring cloud Task,一个生命周期短暂的微服务框架

    2024年02月14日
    浏览(46)
  • 2023最全Java面试题及答案汇总

    面试前还是很有必要针对性的刷一些题,很多朋友的实战能力很强,但是理论比较薄弱,面试前不做准备是很吃亏的。这里整理了很多面试常考的一些面试题,希望能帮助到你面试前的复习并且找到一个好的工作,也节省你在网上搜索资料的时间来学习。 面试官:为什么不建

    2024年02月08日
    浏览(41)
  • 前端开发面试题及答案整理(合集)

      前端开发面试题及答案 1、对Web标准以及W3C的理解与认识? 答:标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链CSS和JS脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组

    2024年02月17日
    浏览(47)
  • 前端200道面试题及答案(更新中)

    目录 html相关 1)说一下对cookie和Storage(localStorage和sessionStorage) 的认识和区别? 2)link和@import的区别 3)浏览器如何实现不同标签页的通信? 4)iframe的优缺点 5)canvas 6)做项目用到哪些h5新特性和css3新特性? 7)用localstorage和sessionStorage写过什么? 8)如何解决页面内容加载缓

    2024年03月14日
    浏览(53)
  • 2023 年Java面试题及答案大全(持续更新)

    本文分为十九个模块,分别是:「Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」 Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,Jav

    2024年02月08日
    浏览(49)
  • 2023年最新前端面试题汇总大全(含答案超详细,HTML,JS,CSS汇总篇)-- 持续更新

    专项练习–持续更新 HTML篇 CSS篇 JS篇 Vue篇 TypeScript篇 React篇 微信小程序篇 前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,微信小程序,Webpack 汇总篇)-- 持续更新 1.xhtml和html有什么区别 功能上 主要是 XHTML 可兼容各大浏览器、手机以及 PDA ,并且浏览器也能快速

    2024年02月12日
    浏览(58)
  • 前端高频面试题汇总正题+(附答案解析)

    正题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 解析 第1题解析 View Code 第2题解析 View Code 第3题解析 View Code 第4题解析 View Code 第5题解析 View Code 第6题解析 View Code 举例: View Code 第7题解析 View Code 举例: View Code 第8题解析 View Code 第9题解析 View Code 第10题解析 View Code   鉴定完毕,

    2024年02月08日
    浏览(38)
  • 50道web前端工程师面试题及答案解析,你学会了吗

    简介:本文包含了50个实用的前端面试题及答案解析,涵盖了HTML、CSS、JavaScript、DOM、Ajax、MVC、模块化、ES6、SPA、Webpack、Babel、Virtual DOM、响应式设计、移动优先设计、响应式图片、CSS 预处理器、后处理器、模块化、布局、盒模型、浮动、定位、动画、选择器、HTML5、WebGL、

    2024年02月02日
    浏览(85)
  • 【面试】Java高频面试题(2023最新整理)

    JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib 就是JVM工作所需要的类库。 对于基本类型,== 比较的是值; 对于引用类型,==比较的是地址; equals不能用于基

    2023年04月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包