1.vue的响应式原理
Vue2 用 Object.defineProperty,Vue3 用 Proxy,核心是 "数据变视图更";
Proxy 是 ES6 提供的对象代理机制,能拦截并自定义对象的读取、赋值、删除等操作
Object.defineProperty 用于直接在一个对象上定义新属性,或修改现有属性的特性(如可读写、可枚举),并可通过 get/set 拦截属性的访问和赋值,实现数据劫持
2.Http和Https的区别
Http(超文本传输协议)明文传输数据没有加密使用80端口,Https使用SSL协议进行加密使用443端口
3.v-bind(:),v-model,v-on的区别
v-bind是将响应式数据绑定到DOM(数据变视图变)
v-on是监听视图比如点击,滚动,视图变化
v-model 是视图和数据的双向绑定 本质是v-on和v-bind的语法糖
4.RESFful API
RESFful API 是一个web接口设计规范,用URL定位资源,Http方法表示操作
5.闭包是什么?实际开发中如何应用?
闭包指的是一个函数有权访问另一个作用域函数的变量,本质是函数作用域链的保留
(1)外层函数再执行完毕后,其变量还不会被垃圾回收,因为内层函数还在使用
(2)可以创建 "私有变量" 函数外无法访问,可以通过闭包暴露的方法进行访问
(3)但是要注意内存泄露
应用:私有变量,防抖/节流函数,循环绑定事件
6.js中的基本类型和引用类型有哪些?
基本类型:String、Number、Boolean、Null、Undefined、Symbol、BigInt
引用类型:Object/Array/Function
7.var/let/const
const 的使用覆盖90%的场景,对于基本类型来说是不可变的,但是对于引用类型来说,引用地址不可变,值是可变的
let 是可变类型,适合使用在循环之类的场景
var 几乎不用/除非是为了兼容老旧的环境
8.三次握手和四次挥手的过程
三次握手:(1)服务器syn->客户端(2)客户端syn+ack->服务器(3)服务器ack->客户端
四次挥手:(1)客户端fin->服务器(2)服务器ack->客户端(3)服务器fin->客户端
(4)客户端ack->服务器
9.数据库事务的ACID特性
Atomicity,Consistency,Isolation,Durability 原子性,一致性,隔离性,持久性
10.Promise是什么
Promise 是ES6对于异步编程的解决方案,可链式调用,避免了回调地狱
三种状态: pedding(进行中), fulfilled(已成功), rejected(已失败)状态不可逆
常用方法 then,catch,finally
11.ref/reactive
ref 和 reactive 都是 Vue3 实现响应式的核心 API,核心区别:
- ref :针对「基本类型」(字符串 / 数字 / 布尔),也能包裹引用类型,通过
.value访问 / 修改值; - reactive :仅针对「引用类型」(对象 / 数组),直接访问属性,无需
.value。
12.什么是防抖和节流
防抖:防止抖动避免把一次事件误认为多次
节流:就是控制事件发生的频率