深圳XX機器人前端開發面試

焦楊2019發表於2020-12-16

面試時間: 2020年12月15日上午10.30點-11點
面試形式: 語音面試

  1. 自我介紹
    參考模板:
    你好,我是XX,畢業於XX大學。現就職於XX公司,有X年開發經驗,公司主要使用技術棧為React+AntDesign+Redux進行開發

  2. React 16和React 15生命週期變化
    去掉了componentWillMount
    去掉了componentWillReceiveProps 使用 getDerivedStateFromProps
    去掉了componentWillUpdate 使用 getSnapShotBeforeUpdate

  3. react hooks
    useState 返回一個狀態以及能修改這個狀態的setter
    useEffect 處理函式元件中的副作用,比如非同步請求,延遲請求,可以替代componentDidMount, componentDidUpdate,componentWillUnmount等生命週期
    useContext 元件直接的狀態共享
    使用React.createContext建立Context,支援在元件外部呼叫,支援狀態共享
    使用Context.Provide 在上層元件掛載狀態
    使用Context.Consumer 為具體元件提供狀態
    useReducer 用於管理複雜的資料結構

  4. DOM 和虛擬DOM 區別和優缺點

專案DOM虛擬DOM
優點批處理和高校的diff演算法,高效渲染,優化效能,可跨平臺
缺點首次渲染大量DOM時,多一層虛擬DOM計算,會比innerHtml插入慢
概念JS物件
  1. Promise和async/await區別
專案Promiseasync/await
區別解決了傳統call函式導致的地獄回撥問題,他的語法導致縱向發展成一個回撥鏈,複雜業務場景,不美觀程式碼簡潔,是非同步程式碼看起來像同步程式碼,await本質提供了等同於 同步效果的 等待非同步返回能力的語法糖,只有這一句程式碼執行完,才會執行下一句
是否阻塞非阻塞非阻塞
依賴基於promise實現,改良版promise
概念非同步程式設計解決方案,比傳統的解決方案(回撥函式事件)更合理,更強大。promise好比容器,裡面放著將來執行的非同步的事件的結果,這些結果一旦生成,無法改變非同步程式設計解決方案,是generator的語法糖,擁有內建執行器,不需要額外的呼叫,直接會自動執行並輸出結果,返回的是一個promise物件

相關文章