历史小剧场
历史是一个好客的主人,却从不容许客人取代它的位置。历史也从来就不是一个人或事几个人可以支配创造的。所谓时势造英雄,实乃至理名言。
真正支配历史的人,不是朱元璋,是稻田里辛勤劳作的老农,是官道上来往的商贾,是朝堂上进言的官员,是孤灯下苦读的学子。 ----《明朝那些事儿》
面试题
一、Proxy相比defineProperty,有何优势?
- 针对整个对象,而不是对象的某个属性,所以也就不需要对keys进行遍历;
- Proxy不需要对数组的方法进行重载,省去了众多hack,减少代码量;
- 不仅可以对数组实现拦截,还能对Map、Set实现拦截。
- 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泛型怎么使用的?
- 先使用interface定义一个响应接口对象IResult,IResult可以接收泛型T;
- IResult中包含
- 状态码code,code类型用 或逻辑符号来规定用哪些数字(必返)
- 数据对象data,data类型为泛型T;(必返)
- 消息提示语msg;(必返)
- 数据总数total;(用在分页,不一定有)
- 最后使用Promise对象,接收IResult类型