前端面試問題集一

| 1 min read

收集面試問題,嘗試自己回答~

Q: Q: cookie 是怎麼帶上的?

server 向瀏覽器發送 http,透過 http 中的 header Set-Cookie 傳給瀏覽器。

Q: Q: 瀏覽器對於帶 cookie 的限制還有哪些?如果直接 get cookie 有辦法拿到 cookie 嗎?

有限制大小約 4KB,每個網域最多只能設定 20 個。

get cookie 要看有沒有寫 httpOnly,如果有寫就無法透過 JavaScript 拿到資料,只能透過 server 拿到資料。

Q: 如何用 config 處理 webpack 或 babel 的設定?

可以把設定檔單獨抽出來,ex: webpack.config.js 或 babel.config.js ,使用 webpack-marge 的工具合併打包。 其他我忘記ㄌ~發現自己在 2021 年寫了滿滿的筆記,那時候也用的很順手,經過兩年沒用真的是沒什麼印象,之後再把筆記整理出來。

Q: Redux 在管理狀態的運作原理?

使用 dispatch 去執行 action ,最後再傳給 store 可以共用狀態,在處理共用的資料拿取上會比較方便,但 redux 不是必要的功能,也可以用 useContent 處理,只是 useContent 太多可能會有效能上的隱憂。

Q: 為什麼用 Redux 不用 useContext?

redux 在資料管理架構上會比較容易維護,但是如果簡單的共用 state ,只用 useContent 也不是不可以。

Q: Redux 中的 action 如果是非同步的流程的話怎麼做?

Redux 的 action 是同步的,如果要處理非同步,需要透過中間件 (middleware),常見的有 redux-thunk 跟 redux-saga。

Q: 為什麼要有框架,框架幫你完成什麼事情?

框架帶你飛(誤

框架會幫你處理好一些比較麻煩的設定,也可以比較容易上手,但是相對的就要學習框架的運作原理還有處理資料的方式,優點可能是快速方便,缺點可能是被綁住遇到框架要升級或是轉換框架的時候都會有額外的成本,這點需要考量進去。

Q: React 的特色是什麼?

前端主流三大框架之一,背後金主爸爸是 facebook,是單向流的資料管理模式,LOGO 是一顆原子很讚。 特色是組件化(component),把 UI 切成 component 來管理。

Q: event loop?

介紹 JavaScript 怎麼運作單執行緒,牽涉到同步與非同步的問題。

這就是一個循環事件~ 程式進入 main thread 之後依序執行,遇到非同步的事件就把它丟到 queue(佇列),之後繼續往下執行,等到所有在 main thread 上的事件執行完畢或是 main thread 空閒覺得無聊的時候,他就會自己找事做去 queue 內拿出事件開始依序處理。

這又牽涉到了 setTimeout 內設定的秒數並不是實際上真正的秒數,main thread 執行完後去拿 queue 執行完成的時間才是真正的時間,通常都會有個誤差。

Q: 非同步的操作執行完後,event loop 會做什麼事?

如果 main thread 被清空了, JavaScript 會繼續執行其他代碼,直到跑完全部的程式。

Q: 為什麼當初設計 JavaScript 是單執行緒

因為比多執行序寫起來簡單,也比較不容易出錯,開發者可以比較快就上手。