【面试题】杭州士腾科技-面试题汇总

时间:2025-02-20 09:49:41

历史小剧场

历史是一个好客的主人,却从不容许客人取代它的位置。历史也从来就不是一个人或事几个人可以支配创造的。所谓时势造英雄,实乃至理名言。
真正支配历史的人,不是朱元璋,是稻田里辛勤劳作的老农,是官道上来往的商贾,是朝堂上进言的官员,是孤灯下苦读的学子。 ----《明朝那些事儿》

面试题

一、Proxy相比defineProperty,有何优势?
  1. 针对整个对象,而不是对象的某个属性,所以也就不需要对keys进行遍历;
  2. Proxy不需要对数组的方法进行重载,省去了众多hack,减少代码量;
  3. 不仅可以对数组实现拦截,还能对Map、Set实现拦截。
  4. Proxy的拦截也是懒处理行为。如果用户没有访问嵌套对象,那么也不会实施拦截,这就让初始化的速度和内存占用都改善了。
二、Vue3支持TSX/JSX需要加什么插件吗?和React比有什么区别?
  • 需要安装 plugin-vue-jsx 插件
npm i @vitejs/plugin-vue-jsx
  • 区别:React不需要自己下载插件,js可以直接进行使用
三、TS中interface和type有什么区别?
  • inteface 是接口,type 是类型别名
  • 相同:
    • 都可以定义一个对象或函数
    • 都允许继承
      • interface 用 extends 继承
      • type 用 & 继承
  • 不同
    • type可以声明基本类型、联合类型、交叉类型、元祖,inteface不行
    • interface 可以合并重复声明,type 不行
四、你们项目中是如何定义后端接口响应的对象的?TS泛型怎么使用的?
  1. 先使用interface定义一个响应接口对象IResult,IResult可以接收泛型T;
  2. IResult中包含
    • 状态码code,code类型用 或逻辑符号来规定用哪些数字(必返)
    • 数据对象data,data类型为泛型T;(必返)
    • 消息提示语msg;(必返)
    • 数据总数total;(用在分页,不一定有)
  3. 最后使用Promise对象,接收IResult类型