前端面试题

前端面试题

1、v-if和v-show有什么区别

v-if 是"真删真建",v-show 是"显示和隐藏",v-if适合少切换场景,v-show时候频繁切换

2、父组件与子组件如何通讯

  • 父传子用props
  • 子传父用emit
  • 双向绑定用v-model

3、兄弟组件之间如何通讯

  1. 子 -> 父 -> 子
  2. 全局状态管理:vue2(vuex),vue3(pinia)

4、为什么 data 是函数

为了保证每个组件都有独一份的数据,避免数据之间互相污染

5、key的作用是什么

给每一个dom节点设定唯一标识,帮助vue在diff更新时精准复用和移动dom,提高性能并避免渲染错误

没有key可能存在:

  • dom错位复用
  • img标签错误展示顺序列表下的数据

6、vue2和vue3的diff算法的区别

vue2:全量diff,只有变动,无论节点是否变化,都会逐层比较

vue3:引入静态标记,在编译过程中会给动态节点打上标签,diff会直接跳过静态节点,只比对有标记的动态节点

7、ref和reactive的作用和区别

  • ref:基础类型响应式,多包裹了一层.value
  • reactive:对象结构,深度响应式,不需要.vlaue,对象优选选择reactive

8、Vue3.0里为什么要用 Proxy API 替代defineProperty APl

Vue 3 用 Proxy 替代 defineProperty,是因为 Proxy 能代理整个对象并拦截更多操作,天然支持属性增删、数组索引/length 变化、集合类型,并能减少递归劫持带来的性能和内存开销

9、vue的生命周期

  1. beforeCreate
  2. created
  3. beforeMount
  4. mounted
  5. beforeUpdate
  6. updated
  7. beforeDestroy
  8. destroyed

10、vue3中怎么设置全局变量

使用Vue.prototype挂载,或者使用pinia全局状态管理

11、v-model的原理是什么样的

v-model 本质是语法糖:父组件通过 props 把值传给子组件,子组件通过触发事件把新值回传给父组件。Vue2 用 value/input,Vue3 用 modelValue/update:modelValue,并支持多个 v-model

12、为什么会有跨域问题

因为浏览器存在同源策略,当协议/域名/端口任意不同时,浏览器会选择前端脚本读取跨源请求的响应,反正恶意网站窃取用户数据

简单来说,就是你的网站地址和你的接口域名不一样导致

解决办法,就是前端配置代理,具体就是不是让浏览器请求接口,而是让vue开发服务器帮我代请求,然后再把数据给到浏览器

13、ES6有哪些改变

  1. 变量声明,let/const为块级作用域
  2. 字符串模板
  3. 结构数组和对象,使用方法 ...
  4. 函数加强,比如箭头函数
  5. 加了class类
  6. 增加Promise,解决回调地狱问题
  7. 增加循环方法,比如forEach、map循环方法,forEach方法是可以修改原数据的,map方法是可以对数据进行修改,然后得到一个全新数据,不会对原数据修改

14、async/await有什么用

async/await是Promise的糖果语法,用同步方法完成异步操作

15、undefined和null的区别是什么

  • undefined是有声明变量,但未赋值、访问对象不存在的属性、函数没写 return也返回空

  • null是无值,也就是空值

16、浏览器有同源策略,但是为何 cdn 请求资源的时候不会有 跨域限制

CDN 不触发跨域限制,是因为同源策略主要限制"跨域读数据",而 script/link/img 这种是"跨源嵌入"默认允许;但一旦你要用 JS 读取资源内容或涉及字体、模块脚本、canvas 等敏感能力,就仍然需要 CORS。

相关推荐
菜鸟小芯33 分钟前
【GLM-5 陪练式前端新手入门】第五篇:响应式适配 —— 让个人主页 “见机行事”
前端·人工智能
无名之逆1 小时前
你可能不需要WebSocket-服务器发送事件的简单力量
java·开发语言·前端·后端·计算机·rust·编程
加农炮手Jinx1 小时前
Flutter for OpenHarmony:web_socket_channel 全平台 WebSocket 通信标准库,从原理到鸿蒙实战(3000字深度解析)
android·前端·网络·websocket·flutter·华为·harmonyos
王码码20351 小时前
Flutter for OpenHarmony:web_socket 纯 Dart 标准 WebSocket 客户端(跨平台兼容性之王) 深度解析与鸿蒙
android·前端·websocket·网络协议·flutter·华为·harmonyos
柳杉1 小时前
使用AI从零打造炫酷的智慧城市大屏(开源):React + Recharts 实战分享
前端·javascript·数据可视化
Highcharts.js2 小时前
玩转Highcharts气泡图|从散点图到气泡图:增加一个维度,数据可视化瞬间立体起来
javascript·信息可视化·散点图·highcharts·图表开发·气泡图·图表创建
A_B_C_Q3 小时前
StringBuilder 与 StringBuffer的区别
java·前端
颜酱3 小时前
差分数组:高效处理数组区间批量更新的核心技巧
javascript·后端·算法
洋洋技术笔记3 小时前
vue3+vite+elementplus简单介绍
前端
Joker Zxc3 小时前
【前端基础(Javascript部分)】2、JavaScript的变量和数据类型
开发语言·前端·javascript