1.js和ts的区别
- 类型系统:JavaScript是动态类型的语言,变量的类型在运行时确定;而TypeScript是静态类型的语言,变量的类型在声明时确定。
- 编译:JavaScript是解释型语言,代码直接在浏览器中运行;而TypeScript需要先编译成JavaScript,然后在浏览器中运行。
- 工具和生态系统:由于TypeScript有静态类型和编译步骤,开发者可以利用这些特性构建更强大和可维护的工具和生态系统,例如类型检查、自动完成、重构工具等。
2.git 代码合并
切换到目标分支
git checkout target-branch
将一个分支的更改"重放"到当前分支
git rebase source-branch
3.type 和interface的区别
在TypeScript中,官方推荐使用interface
来定义对象类型,因为它提供了更多的灵活性和自动合并的功能。然而,在需要定义联合类型、元组或复杂类型别名时,type
是不可或缺的
总结:在定义对象类型时,如果需要利用接口的继承、合并等特性,可以选择interface
;在定义基本类型、联合类型、元组等复杂类型时,type
则更为灵活和方便
4.ts枚举怎么定义
enun info{aa=1,bb=2}
5.watch和computed的区别
- computed优先场景:
- 需要将多个响应式数据组合为新值(如姓名拼接)。
- 需要缓存计算结果避免重复计算(如复杂公式运算)。
- watch适用场景:
- 需要执行异步操作(如API请求)。
- 需要深度监听对象内部变化(需配置
deep: true
)。 - 需要根据数据变化触发副作用(如浏览器尺寸调整)。
6.ref和reactive的区别
-
数据类型支持。
ref
:可包装任何类型(基本类型如字符串、数字,或对象/数组),返回含.value
的响应式对象。reactive
:仅接受对象或数组,返回代理对象,直接访问属性。
-
访问方式。
ref
:在JavaScript中需通过.value
操作(如count.value++
),模板中自动解包。reactive
:直接访问属性(如state.count
),无需额外语法。
-
设计用途。
ref
:适合独立值或需整体替换的场景(如计数器)。reactive
:适合复杂对象或嵌套数据结构(如用户信息表单)。
进阶差异
- 响应式机制 :
ref
通过对象包装实现,reactive
基于Proxy深度代理。 - 解构问题 :
reactive
解构会丢失响应性,需配合toRefs
;ref
解构后仍保留.value
。 - 性能考量 :
ref
对单一值更新更轻量,reactive
深度监听可能带来额外开销。
使用建议
- 基本类型或需频繁替换的值优先用
ref
。 - 复杂对象且需深度响应时选择
reactive
。 - 团队应统一规范以避免混用导致的维护问题。
7.eslint的作用
ESLint是一个用于识别和修复JavaScript/TypeScript代码中问题的静态代码分析工具,主要作用是提升代码质量、统一编码风格并推行最佳实践