前端面試總結(2020精華題)

 

 

前言:

公司如何招到合乎老闆心意的前端開發工程師。個人又是如何能夠找到心動的企業呢?會解決問題能夠培養你獨立解決的能力,能提出獨樹一幟的問題能給人耳目一新的感覺。

正文:

今天我們團隊的夥伴面試了一個自稱是五年開發經驗的人員,但滿意程度確實很低。究竟問了些啥?我們一起鞏固一下

1.git

首先很多人用過git,git的問法可大可小,可多可少。git也是一個檢查面試者是剛剛培訓出來的還是真的有工作經驗(但是不能保證有幾年工作經驗)。

常用的git命令:

  • git init(創建倉庫)
  • git status(查看倉庫的狀態)
  • git diff 文件名 (這次相較上次修改了哪些內容)
  • git add 文件名 (將添加的文件放到本地暫存區中)
  • git commit (將棧存區內容提交到代碼區中)
  • git clone git地址(將遠程倉庫的代碼克隆到本地)
  • git branch 查看當前分支
  • git checkout 切換分支
  • git rm <file> # 從版本庫中刪除文件
  • git reset <file> # 從暫存區恢復到工作文件
  • git pull # 抓取遠程倉庫所有分支更新併合併到本地
  • git push -f origin develop   強制提交

(1)、SSH祕鑰

1、生成一組SSH祕鑰

ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' -C "你的[email protected]"

2、使生成的私鑰生效

ssh-agent bash && ssh-add  ~/.ssh/id_rsa

3、使用下述命令查看公鑰,然後在GitLab上,個人設置裏,添加SSH的公鑰

cat ~/.ssh/id_rsa.pub

4、驗證祕鑰可用性

ssh [email protected](替換爲你的GIT服務器地址)

(2)、首次提交代碼(剛剛被拉進新項目)

//以下是首次提交 
git init
git add .
git commit -m "描述"
git remote add origin 遠程git分支地址
git pull origin master
git push origin master

(3)、更新遠程庫代碼:

//修改後上傳
git add -A
git status
git commit -m "描述"
git status
git remote -v
git push origin master

(4)、克隆一份代碼:

git clone 遠程url

(5) 、git回滾

如果一不小心提交失敗,就可以使用git回滾命令,回滾到上次提交代碼之前

git reset --hard HEAD^           回退到上個版本

git reset --hard HEAD~3          回退到前3次提交之前,以此類推,回退到n次提交之前

git reset --hard “提交id名”      每次提交都會對應唯一的commit id(版本號),git中可以查        
                                  到,當然,也可以 git log 查到。

(6) 、git撤銷

git add後撤銷:

git reset HEAD .             //撤銷所有add文件
git reset HEAD -filename     //撤銷單個add文件

git commit後撤銷:

git push後撤銷:

git merge 撤銷:

建議查看:

https://www.cnblogs.com/songgj/p/8965580.html 

https://blog.csdn.net/weixin_38676357/article/details/81333015

(7)git push完後發現遠程地址不對,提交不成功,及時修改git遠程地址:

 

2.vue

vue.js是一套構建用戶界面的漸進式框架。

這句話可能大家並不陌生,但是真正理解這句話的可能並不多,其實,讀懂了這句話,也就明白了vue的核心理念.

那麼,怎樣理解什麼是漸進式框架?在這之前,我們首先要理解什麼是框架.在最初的前端開發中,爲了完成某個功能,我們需要通過js在HTML頁面中獲得dom節點,隨後獲得dom節點中的文本內容或者在dom節點上添加事件,進行一系列的程序操作,但是,如果任務量很大的情況下,代碼會隨着業務的增加而變得臃腫和混亂,在現實的開發中,負責的邏輯和巨大的開發量,是原生js無法完成的.

這個時候,開發人員將js代碼分爲了三個板塊,數據(Model),邏輯控制(*),視圖(View),數據板塊只負責數據部分,視圖板塊負責更改樣式,邏輯控制負責聯繫視圖板塊和數據板塊,這樣子有很大的好處,當需求發生變動時,只需要修改對應的板塊就好。

3.v-modle的原理:

vue中的雙向數據是通過數據劫持(Object.defineProperty())結合發佈者-訂閱者模式來實現的。

簡單的來說,通過Object.defineProperty對監聽的每一個屬性設置get 和 set 方法。

4.vue-router  和嵌套路由

嵌套路由就是路由裏面嵌套他的子路由

子路由關鍵屬性children

每一個子路由裏面可以嵌套多個組件

子組件又有路由導航和路由容器

<router-link to="/父路由的地址名字/要去的子路由的名字"></router-link>

還有一點是正則匹配(正則匹配可以簡化很多if繁瑣的代碼)。

5.vue組件傳值

父傳子:props

子傳父:this.$emit

兄弟之間:bus函數

6.vue的源碼

GitHub上面下載vue的源碼(https://github.com/vuejs/vue

7.ref和refs

ref 被用來給DOM元素或子組件註冊引用信息,引用信息會根據父組件的 $refs 對象進行註冊。如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子組件上,引用信息就是組件實例。

8.對可視化了解多少?svg熟悉嗎?

詳情:最火Web前端組態軟件(可視化)

9.原生js是什麼水平

框架解決不了的原生都能解決,原生的也是可大可小。有些項目當前流行的框架根本用不了的時候,你只能用原生去開發了。

10.項目解決衝突的辦法

找到衝突的文件,並對比衝突的地方,仔細查看代碼。

在這裏推薦一個代碼文件比較的工具,Beyond,如下圖:

11.在項目上如何應用修改之後的element代碼

這個還是你真的去接觸element源碼並修改後多出用到組件纔會體會。

感悟:

你只有用盡全力,纔可以看起來毫不費力!

參考文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章