- 解釋ACID特性,如何在node.js中實現事務操作
- 針對React單頁應用,請提供至少5種性能優化方案,并解釋其原理:
- 減少首屏加載時間
- 優化渲染性能
- 資源加載策略
- 狀態管理優化
- 代碼分割方案
- 如何防止以下攻擊:
- JWT令牌挾持
- Graph QL查詢過載
- 目錄遍歷攻擊
- 實現一個計數器函數 createCounter(),每次調用返回遞增數字
- 列出三個常見的React類組件生命周期方法及用途
- 為什么不能在條件語句中使用Hook,例如?
if (condition){useEffect(() => {}, [])
}
- package.json里面 dependencies和devDependencies的區別
- 請使用React實現一個搜索組件
interface SearchResult {id: string,title: string,description: string
}function SearchComponent({onSeach, debounceTime}): {onSearch: (searchQuery: string) => Promise<SearchResult[]>,debounceTime?: number }{//你的實現
}
要求:
實現防抖操作
處理加載狀態和顯示
使用AbortController取消未完成請求
結果列表虛擬滾動
-
設計電商系統核心表結構
a. 用戶表
b. 商品表
c. 訂單表
d. 支付記錄表
要求:
包含必要字段和類型
標注主鍵/外鍵
設計訂單狀態機(使用Enum或狀態表) -
Mysql索引優化,對于以下查詢,如何設計最優索引?說明原因
select * from orders where user_id = 1001 and status = 'completed' order by created_at desc limit 10;
-
訂單服務要調用庫存服務和支付服務
如何設計分布式事務保證:
庫存扣減和支付操作的一致性
失敗場景的補償機制
服務間通信的冪等性
給出解決方案 (Saga/TCC等)和偽代碼實現 -
使用TypeScript實現以下任一模式
a. 觀察者模式(訂單狀態變更通知)
b. 策略模式(多種折扣計算策略)
c. 裝飾器模式(API請求日志記錄) -
解釋 setImmediate和process.nextTick的執行差異
-
請輸出下列代碼的結果:
async function async1(){console.log('A');await async2();console.log('B');
}async function async2(){console.log('c')
}
console.log('D');
setTimeout(() => console.log('E'), 0);
async1();
new Promise(resolve => {console.log('F');resolve();
}).then(() => {console.log('G')});
console.log('H');