歷史小劇場
歷史是一個好客的主人,卻從不容許客人取代它的位置。歷史也從來就不是一個人或事幾個人可以支配創造的。所謂時勢造英雄,實乃至理名言。
真正支配歷史的人,不是朱元璋,是稻田里辛勤勞作的老農,是官道上來往的商賈,是朝堂上進言的官員,是孤燈下苦讀的學子。 ----《明朝那些事兒》
面試題
一、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類型