题目
JS和TS区别
- 类型
JS:动态类型,变量类型在运行时确定,无需显示声明类型。
TS:静态类型,支持类型注解和编译时类型检查,可提前发现错误。
- 编译与运行
JS:直接由浏览器或者node.js,无需编译
TS:需要通过编译器(tsc)转换为JS代码后才能运行。
- 语法扩展
JS:仅支持基础的ECMAScript语法
TS:JS的超集合,新增了接口,枚举,泛型等特性,支持面向对象编程。
- 工具支持
JS:工具支持较弱类型,类型相关错误需要运行时才能发现。
TS:提供更强大的IDE智能提示,代码补全和重构功能。
vue2和vue3区别
- 响应式系统
Vue2:数据劫持Object.defineProperty实现响应式,需递归遍历对象
Vue3:Proxy代理对象,动态属性监听且性能更优化
ES6 中 let/const 与 var 的区别,以及箭头函数的特点
let/const vs var:
作用域: let/const 是块级作用域,var 是函数作用域
变量提升: var会提升变量,let/const不会(有暂时性死区)
重复声明: var允许重复声明,let/const不允许
const声明必须初始化且不能重新赋值(对象属性可修改)
箭头函数:
语法更简洁
没有自己的this,继承外层this值
不能作为构造函数使用(new)
没有arguments对象,可用rest参数替代
HTTP状态码分类及常见示例
4xx(客户端错误)。
表示请求包含错误或无法完成:
400 Bad Request:请求语法错误。
403 Forbidden:服务器拒绝访问。
404 Not Found:资源不存在。
5xx(服务器错误)。
表示服务器处理请求时出错:
500 Internal Server Error:服务器内部错误。
503 Service Unavailable:服务暂时不可用(如过载维护)。
uniapp页面级生命周期
onLoad:页面首次加载时触发,接收上一页传递的参数。
onShow:页面每次显示时触发(包括返回操作)。
onReady:页面初次渲染完成,可操作DOM节点。
onHide/onUnload:页面隐藏或卸载时触发。
onPullDownRefresh/onReachBottom:分别用于下拉刷新和上拉加载更多
Vue混淆模式下,同函数可以调用吗?顺序是?
可以,混淆先执行后执行当前,优先执行mixin后执行当前页面,data会进行合并以当前为最新,如果没有会合并当前data
http和https的区别
HTTP(超文本传输协议):明文传输数据,无加密,易被窃取或篡改
HTTPS(安全超文本传输协议):在 HTTP 基础上加入 SSL/TLS 加密,确保数据安全传输
Vue3 监听 深度监听 立马执行
Deep immediate
mvc和mvvm区别
Model:管理数据和业务逻辑
View:负责界面展示,被动接收Model数据
Controller:处理用户输入,协调Model和View的交互
MVVM
Model:与MVC相同,处理数据和业务规则
View:仅关注UI展示,通过数据绑定自动更新
ViewModel:替代Controller,负责将Model数据转换为View可用的形式,并处理用户交互逻辑
js 检查数组有哪些
isArray
浏览器默认字体大小是16px,1rem=16px
<meta name="viewport" content="width=device-width, initial-scale=1.0">
移动端开发遇到的问题有哪些: 界面错乱,功能失效,奔溃闪退
解决方案: 采用响应式设计(Flexbox/Grid布局),进行多设备和多版本测试
性能优化: 页面卡顿和加载缓慢,耗电过快,大数据量渲染性能差
优化方案:代码优化(减少DOM操作)图片懒加载和压缩,使用虚拟滚动技术处理长列表
1px边框在高清屏变粗,横竖屏切换布局错乱,键盘弹出时页面布局异常
microapp 部署
确保基座应用和子应用都已开发完成并通过测试
准备生产环境服务器配置(推荐Nginx)
确认所有子应用的独立运行能力
配置public-path.js文件
设置跨域头信息