一般公司首先讓你做自我介紹:
基本的自我信息:姓名、畢業學校、專業(選擇性的說)、介紹一下你在什么公司、做過的項目(肯定是要包裝。包裝但不是真正意義上的作假。)企業是通過面試來考驗你是否滿足企業需求。你現在並沒有非常體面在線項目,但是你需要這些證明自己的實力,那你可以選擇一些確實是你會做,懂得做的項目,作為自己的項目並且展示給別人看。
如何介紹自己做過的項目:
1、簡單的介紹項目的由來(為什么公司要做這個項目,對公司有什么好處,2、3句帶過即可)。
2、介紹你在這個項目中負責的事情和職責。因為1個十幾號人,什么事都你做了,其他人就只能斗地主。前端的話,你就可以說,我負責日常的營銷活動的H5制作,購物車、訂單模塊前端頁面的制作。
3、在你負責的項目和事情里,你用到了哪些技術,(再說每一個技術點的,必須要說下用在項目的什么地方:比如說整個商城的頁面切換包括購物車、訂單頁面都是采用Vue的路由來做。)像素級的還原設計頁面,REM布局、彈性布局、CSS3動畫、過渡效果、字體圖標、canvas、本地存儲、Vue框架、Vue路由、Vuex進行狀態管理、微信小程序。
4、我這個項目遇到的問題。說一下你解決困難問題事情。比如說某個模塊,父子組件直接的信息傳遞和狀態管理,又或者說解決某個庫兼容性問題。
5、做個總結,你在項目中的收獲。比如說,技術上的收獲,基本可以獨立完成商城前端頁面的開發。事業上的收獲,老板加薪、升職了、表揚了。
前端面試所遇到的技術點:
HTML的問題
(1) 行標簽和塊級標簽分別有哪些?
(2) 常見HTML5的標簽有哪些?
(3) 怎么頁面結構會比較好?
(4) 如何減少HTTP請求和優化?
減少請求的資源,將多個CSS資源打包到1個文件里。將多個JS打包到1個JS文件里。采用雪碧圖將多個圖片放置到1個圖片里。盡量的壓縮css文件、js文件、圖片文件、采用無損壓縮的方式或者是使用webP格式的圖片。
(5) HTML5和HTML4的區別。
① 自定義標簽
② HTML5兼容HTML4
③ 多出一些標簽canvas/video/audio/iframe等等,多出些JS相關的API
CSS
(1) 選擇器的問題,選擇器權重的問題。
Id>class>element,越詳細越精確的選擇器權重越過,!important可以迅速將權重提高。
(2) 布局相關的問題。
正常的布局、聖杯布局、居中定位、REM布局的原理、彈性布局、清除浮動問題
(3) Tansfrom位移、旋轉、傾斜、縮放的問題?
一般問順序執行的問題,先位移在旋轉和旋轉后位移有什么區別
(4) 動畫、過渡性能優化的問題?
盡量減少非常多元素同時產生動畫,盡量少的在1個元素里設置多個動畫效果。位移的話,盡量使用transform的tranlate來做位移,不要用定位的left、top、right、bottom來實現位移。
JS
(1) 變量的提升、函數的提升
(2) 構造對象,構造對象的方法。
構造函數、class、工程模式構造對象、單例模式
(3) 什么是原型鏈、原型對象、怎么在原型鏈上添加方法,如何通過原型實現繼承
構造函數的prototype、事例化出來的對象__proto__
(4) this的指向問題
This是根據函數被哪個對象調用,那么這個this就指向誰。在箭頭函數里,箭頭函數定義的時候,this指向誰就一直指向誰。改變this的指向可以通過call/apply/bind都可以改變this的指向。
(5) 數組常見的方法和排序問題
數組的增刪改查、數組排序、數組復制
(6) 事件的問題?
Onclick跟addEventListener這兩種方式監聽的事件有什么區別。(addEventListener一個事件可以綁定多個函數,很多新出移動端事件比如touch等只有它支持、還可以設置捕獲或者冒泡來進行監聽)
如何阻止冒泡事件?Event.cancelbubble = true
事件傳遞參數的問題?一般在元素上綁定data-xx=’xx’
(7) 如何處理操作dom
對元素對象的增刪改查操作。
(8) 如何獲取元素的一些信息:元素的大小、屏幕的寬度、元素的位置
(9) 如何獲取瀏覽器的一些信息:url地址的獲取、UserAgent的獲取、地理位置的獲取
(10) jQuery的鏈式原理?
(11) jQuery常用的方法有哪些?
(12) Vue虛擬DOM是什么原理?
(13) Vue數據的雙向綁定的原理?
(14) Vue路由的原理是什么?
(15) Vuex狀態管理的整個過程是什么樣的?
(16) Vue生命周期這個過程是什么樣的?
(17) React虛擬dom什么原理?
(18) React路由什么原理
(19) Redux是什么原理
(20) 小程序一些常見的API方法?