三年經驗前端社招——豐巢科技

大家好,我是若川。最近組織了源碼共讀活動《1個月,200+人,一起讀了4周源碼》,已經有超50+人提交了筆記,群里已經有超1200人,感興趣的可以點此鏈接掃碼加我微信?ruochuan12?參與。

本文經作者@lxcan 授權轉載,未經授權請勿直接轉載。
原文標題:《三年經驗前端社招——豐巢科技》
原文鏈接:https://zhuanlan.zhihu.com/p/405745017
文末點擊閱讀原文直達

前言

本人畢業學校是雙非二本,非計算機科班出身,大學時自學的前端相關技能。截止2021年8月,有3年前端開發經驗,技術棧為 vue 全家桶,求職意向城市是深圳。想著找一個更大的平臺尋求發展(技術沉淀、漲薪),所以出來接受社會的毒打了。。。

本文的目的是記錄自己的面試經歷,各位路過的兄dei也可以參考一下,也讓自己有個回顧和反思。路漫漫其修遠兮,吾將上下而求索

下面的題目,都會標明每一題的性質,部分題目也會給出一些參考思路和參考回答,希望各位大佬不吝賜教~

  • 描述:對概念、過程的描述,純理論性問答題為主

  • 舉例:說出應用場景,或者是自己團隊實踐的情況

  • 偽代碼:寫代碼,但不需要跑起來,甚至可以隨便寫偽代碼,主要目的是描述思路

  • 編程:真正的寫代碼,需要跑起來,有測試用例,要看到效果

HR面的話,是一些日常、項目回顧(少說技術細節)、職業規劃、你的優勢和缺點、為什么跑路、為什么選擇這邊、目前薪資和職級、期望薪資,HR面基本離不開這些問題。

一面

1、說一個你印象最深刻的項目?遇到了什么問題?怎么解決的?有什么成果?【描述】

2、有個長列表上萬行,怎么做優化?【描述】
懶加載或者虛擬滾動

3、圖片資源怎么做優化?【描述】【舉例】
壓縮、雪碧圖、svg、base64、iconfont

  • 首屏圖片優先加載,等首屏圖片加載完全后再去加載非首屏圖片。

  • 對大部分圖片,特別是輪播廣告中的圖片進行按設備尺寸裁剪,減少圖片體積,減少網絡開銷,加快下載速率。

4、懶加載的話,如果異步請求返回很慢 1-3 秒,怎么優化?【描述】
后端處理,緩存

5、做過哪些 webpack 打包體積優化?具體怎么做怎么配置的?【描述】【舉例】

  • 壓縮代碼

  • 提取公共資源

  • tree-shaking

  • scope-hoisting

  • 圖片壓縮

  • 動態Polyfill

6、你覺得 webpack 里面最難配置是哪些?【舉例】
多入口打包、loader配置、external、tree-shaking等說幾個

7、瀏覽器加載網頁的主要步驟包括哪些?【描述】
(1)通過DNS進行域名解析得到域名映射的IP地址
(2)向此IP地址發起TCP的3次握手,取得連接
(3)建立TCP連接后發起http請求
(4)服務器響應http請求,瀏覽器得到html代碼
(5)瀏覽器解析html代碼,并請求html代碼中的資源(如 js、css、圖片等)
(6)瀏覽器對頁面進行渲染,最終呈現給用戶

8、瀏覽器對頁面進行渲染,是怎么渲染的?DOM 樹和 CSSOM 樹是怎么構建的?【描述】
渲染過程:
(1)構建DOM樹,將瀏覽器無法直接理解和使用的HTML,轉換為瀏覽器能夠理解的結構--DOM 樹。
(2)構建CSSOM,把 CSS 轉換為瀏覽器能理解的結構(styleSheets),并轉換樣式表中的屬性值,使其標準化,計算出 DOM 樹中每個節點的具體樣式(根據繼承規則和層疊規則)。
(3)創建 Layout 布局樹,確定DOM 元素的幾何位置信息,遍歷 DOM 樹中的所有可見節點,加入到布局樹(display:none不包含),并計算布局樹節點的坐標位置。
(4)構建圖層樹,如果頁面有復雜的效果,如常見的頁面滾動,或者使用 z 軸排序等,為了更加方便地實現這些效果,渲染引擎還需要為特定的節點生成專用的圖層,并生成一棵對應的圖層樹(LayerTree)。
(5)Paint 圖層繪制,把一個圖層的繪制拆分成很多小的繪制指令,然后再把這些指令按照順序組成一個待繪制列表(聯想自己畫畫)。
(6)tiles:將圖層轉換成圖塊。
(7)光柵化:通過進程實現圖塊轉換成位圖。
(8)display:瀏覽器進程拿到 DrawQuad 信息生成頁面顯示。

9、在html頭部head 通過 link 外部引入一個樣式文件,會阻塞渲染嗎?【描述】
css樣式解析不會阻塞渲染

10、CDN 加速原理是什么?它和外鏈引入js這種有什么區別?【描述】
CDN 即內容分發網絡。CDN 的基本原理是廣泛采用各種緩存服務器,將這些緩存服務器分布到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求。

CDN 的適用場景:
解決因分布、帶寬、服務器性能帶來的訪問延遲問題,適用于網站站點/應用加速、點播、直播、視音頻點播、大文件下載分發加速、移動應用加速等場景

11、防抖和節流是什么?怎么實現?有哪些應用場景?【描述】【偽代碼】
常見問題

12、vue-router 有幾種模式?分別說下他們的實現原理?【描述】
兩種模式
- hash模式:利用 window 的 hashchange 事件,監聽到 hash 改變后拿到對應的路由組件,更新DOM
- history模式:利用 history.pushState 事件改變瀏覽器地址欄,以及 window 的 popstate 事件監聽瀏覽器的前進后退事件,更新DOM

13、說下 vue 響應式原理【描述】

14、說下 vue 都有哪些生命周期鉤子函數?都在什么階段觸發的?【描述】

15、vue 如果一個父組件嵌套了子組件,它們的加載順序是什么?觸發生命周期的順序又是什么?【描述】
先創建父組件,再創建子組件;先掛載子組件,再掛載父組件。

16、說下 Diff 算法的執行過程【描述】
DOM操作是很耗性能的,因此需要盡量減少DOM操作。找出本次DOM必須更新的節點來更新,其他的不更新,這個“找出”的過程,就需要diff算法。diff算法主要執行過程:

  • patch(container, vnode) ,首次渲染,將 container 轉為 vnode,并對比新舊 VNode 是否相同節點然后更新DOM

  • patch(vnode, newVnode) ,數據改變二次渲染,對比新舊 VNode 是否相同節點然后更新DOM

  • createElm(vnode, insertedVnodeQueue),先執行用戶的 init 鉤子函數,然后把 vnode 轉換成真實 DOM(此時沒有渲染到頁面),最后返回新創建的 DOM

  • updateChildren(elm, oldCh, ch, insertedVnodeQueue), 如果 VNode 有子節點,并且與舊VNode子節點不相同則執行 updateChildren(),比較子節點的差異并更新到DOM

17、用過哪些ES6的新特性【舉例】

18、ES6 的 Map 有什么特性?可以設置重復的key嗎?Map 有順序嗎【描述】
Map最主要的特性就是可以設置任意數據類型的key。key不能重復,后續會覆蓋之前的,有順序。

19、可以改變原數組的方法有哪些【舉例】
push, pop, unshift, shift, splice, sort, reverse
20、怎么收集一個二維數組里的重復元素?【描述】
先拍平數組,再遍歷數組,判斷當前元素的前后索引值,如果前后索引值不一樣就是重復的

21、怎么判斷一個元素是否為數組?【描述】
(1)Array.isArray() 方法
(2)arr instanceof Array
(3)Object.prototype.toString.call(obj) === '[object Array]'

22、最近在學什么新技術?【描述】

23、你近期的職業規劃?有具體去做計劃嗎?你覺得怎樣才算是一個高級開發?【描述】

24、你有什么問題要問我的?【描述】

最后

深圳市豐巢網絡技術有限公司,所處行業是物聯網,物流平臺,電商平臺。這家一面是視頻面試,面了大概一個小時,有些問題不記得了,感覺有幾個問題沒答好,面試一輪游,不管怎樣,菜是原罪,繼續加油吧~
往期回顧:

  • 三年經驗前端社招——樸樸科技

  • 三年經驗前端社招——騰訊微保

  • 三年經驗前端社招——慧擇網

  • 三年經驗前端社招——有贊

  • 三年經驗前端社招——眾安保險

  • 三年經驗前端社招——Shopee

天生我材必有用,千金散盡還復來

最近組建了一個湖南人的前端交流群,如果你是湖南人可以加我微信?ruochuan12?私信?湖南?拉你進群。


推薦閱讀

1個月,200+人,一起讀了4周源碼
我讀源碼的經歷

老姚淺談:怎么學JavaScript?

我在阿里招前端,該怎么幫你(可進面試群)

b6a4cdfd65a435b03d5ff06445b7e42f.gif

·················?若川簡介?·················

你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》10余篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,最近組織了源碼共讀活動,幫助1000+前端人學會看源碼。公眾號愿景:幫助5年內前端人走向前列。

f5e868a1441fc6eb967ea8a85f97d103.png

識別方二維碼加我微信、拉你進源碼共讀

今日話題

略。歡迎分享、收藏、點贊、在看我的公眾號文章~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275400.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275400.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275400.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數字集成電路物理設計_數字世界的物理詞匯

數字集成電路物理設計Nineteen Eighty-Four is my favourite novel; I must have read it half a dozen times. There are many reasons why I believe it to be a work of literary genius, but recently I’ve been thinking about one specific aspect of it that has a ver…

yum安裝Docker失敗No package docker available

2019獨角獸企業重金招聘Python工程師標準>>> 原因:yum沒有找到docker包,更新epel第三方軟件庫。 yum install epel-release再yum安裝docker: yum install -y docker轉載于:https://my.oschina.net/yuantangxi/blog/3033800

用html編寫ASCII表,HTML ASCII

HTML ASCII 參考手冊ASCII 是互聯網上計算機之間使用的第一個字符集(編碼標準)。ISO-8859-1(在 HTML 4.01 中是默認的)和 UTF-8(在 HTML5 中是默認的)都是基于 ASCII 建立的。ASCII 字符集ASCII 全稱 "American Standard Code for Information Interchange"&#xff…

一文徹底搞懂前端監控 等推薦

大家好,我是若川。話不多說,這一次花了幾個小時精心為大家挑選了20余篇好文,供大家閱讀學習。本文閱讀技巧,先粗看標題,感興趣可以都關注一波,一起共同進步。前端點線面前端點線面 百度前端研發工程師&…

黑客宣言_情感設計宣言

黑客宣言重點 (Top highlight)I have a feeling that this article is going to be slightly different from the rest of the articles I’ve recently seen or read. Everybody seems to be fighting on topics such as “UX designer or Product Designer”? “UX/UI is ok…

[轉]VS2010中的單元測試

本文轉自:http://zxianf.blog.163.com/blog/static/30120701201101011757499/ 在VS2010中,單元測試的功能很強大,使得建立單元測試和編寫單元測試代碼,以及管理和運行單元測試都變得簡單起來,通過私有訪問器可以對私有方法也能進行…

IDEA、 JetBrains、webstorm、 pycharm 破解教程

[TOC] 第一步 下載IDEA 2018年2月前版本 ) !!!注意 一定要2018年2月前的版本 最新版本不確定能否使用 第二步 打開破解包網址 下圖所示 點擊下載 點擊下載第三步 把下載好的jar包放到IDEA安裝目錄的/bin里面 第四步 打開上圖的圈中的文件 在兩…

微型計算機儲存信息的基本單位是什么,16.磁盤存儲器存、取信息的最基本單位是...

【填空題】學習完成4.6的教學視頻以后,完成齒輪建模并測量其質量為( )kg。【判斷題】在單鏈表中設置頭結點的作用是為了操作上的方便【判斷題】財務杠桿會增加ROE和EPS的波動程度【多選題】形式美的構成因素一般劃分為兩大部分:一部分是構成形式美的();一部分是構成形式美的(),…

三年經驗前端社招——Shopee

大家好,我是若川。最近組織了源碼共讀活動《1個月,200人,一起讀了4周源碼》,已經有超50人提交了筆記,群里已經有超1200人,感興趣的可以點此鏈接掃碼加我微信 ruochuan12本文經作者lxcan 授權轉載&#xff0…

簡易撥號器iCall

iCall是由哥開發的一款android平臺的電話撥號小工具&#xff0c;簡單不能再簡單的Android手機撥號程序。 代碼不過幾行&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/…

蘋果手機隱私分析數據是什么_蘋果公司以用戶為中心的隱私保護方法能教給我們什么?

蘋果手機隱私分析數據是什么重點 (Top highlight)Moving beyond the rollercoaster of excitement and controversy Apple has been in for the last week, there was one thing in the WWDC keynote that stood out for me. One thing I really appreciated seeing. There is …

中外計算機百科知識,計算機百科知識.doc

計算機百科知識計算機百科知識1.微機熱啟動時,需要按下的組合鍵是( D )A、CtrlDel B、AltDel C、CtrlAlt D、CtrlAltDel2.顯示器和打印機都是&#xff1a;( D )A、顯示設備B、輸入設備C、存儲設備D、輸出設備3.HOME鍵的作用是( B ) A、將光標移到當前行的右端 B、將光標移到當前…

為什么 Vue2 this 能夠直接獲取到 data 和 methods ? 源碼揭秘!

1. 前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動《1個月&#xff0c;200人&#xff0c;一起讀了4周源碼》&#xff0c;已經有超50人提交了筆記&#xff0c;群里已經有超1200人&#xff0c;感興趣的可以點此鏈接掃碼加我微信 ruochuan12之前寫的《學習源碼整體架構系…

java包的命名規則技巧

java包的概念和.net名稱空間非常類似。.net的名稱空間通常以程序的項目名稱和功能模塊或層次結構命名。 java包也是如此。唯一不同的是java程序最外層包的名稱通常以com開始。起初我不知道為什么這么命名。后來發現&#xff0c;原來java包命名其實就是網站域名去掉www的倒寫然后…

鈕扣電池電壓電量_紐扣廠

鈕扣電池電壓電量S. is a designer and works at the button factory. Despite its scary look, S. goes there every day, and he loves his routine, never missing a day!S.是一位設計師&#xff0c;在按鈕工廠工作。 盡管看上去很恐怖&#xff0c;S。每天都去那里&#xff…

18秋學期《計算機網絡》在線作業,18秋北交《計算機應用基礎及計算機網絡與應用》在線作業一-2輔導資料.docx...

18秋北交《計算機應用基礎及計算機網絡與應用》在線作業一-2輔導資料.docx18 秋北交計算機應用基礎及計算機網絡與應用在線作業一-21、B 2、D 3、B 4、A 5、B 一、單選題共 10 題&#xff0c;40 分1、決定局域網特性的主要技術 要素包括( )、傳輸介質與介 質訪問控制方法。A 所…

三年經驗前端社招——慧擇網

大家好&#xff0c;我是若川。最近組織了源碼共讀活動《1個月&#xff0c;200人&#xff0c;一起讀了4周源碼》&#xff0c;已經有超50人提交了筆記&#xff0c;群里已經有超1200人&#xff0c;感興趣的可以點此鏈接掃碼加我微信 ruochuan12本文經作者lxcan 授權轉載&#xff0…

什么是云計算?云計算學習基礎

云計算&#xff08;cloudcomputing&#xff09;是基于互聯網的相關服務的增加、使用和交付模式&#xff0c;通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源。 美國國家標準與技術研究院&#xff08;NIST&#xff09;定義&#xff1a;云計算是一種按使用量付費的模式&…

港口遭遇小MM

港口&#xff0c;遭遇小MM 剛開始&#xff0c;丫頭看見我拍她&#xff0c;對我毫不客氣地說&#xff1a;“侵犯肖像權&#xff0c;除非立刻買兩份冰淇淋來&#xff01;”后來&#xff0c;她就一直跟在我屁股后面&#xff0c;求我給她拍。輪到我說話了&#xff1a;“拍一張&…

印發 指南 通知_通知設計的綜合指南

印發 指南 通知重點 (Top highlight)Peripheral messages in digital products, collectively known as notifications, should never harm the user experience. Instead, they must contribute to an experience that helps people accomplish a goal. Addressing notificati…