前端面試詳解

React篇

1.react有哪幾個生命周期?

constructor()

static getDerivedStateFromProps()

componentWillMount() / UNSAFE_componentWillMount()

render()

componentDidMount()

componentWillReceiveProps() / UNSAFE_componentWillReceiveProps()

static getDerivedStateFromProps()

shouldComponentUpdate()

componentWillUpdate() / UNSAFE_componentWillUpdate()

render()

getSnapshotBeforeUpdate()

componentDidUpdate()

componentWillUnmount()

componentDidCatch()

2.在哪個生命周期做優(yōu)化?

shouldComponentUpdate

3.react怎么從虛擬dom中拿出真實dom?

ref

4.react的diff算法是怎么完成的?(基礎(chǔ)原理)?

3個策略:

Web UI 中DOM節(jié)點跨層級的移動操作特別少,可以忽略不計

擁有相同類的兩個組件將會生成相似的樹形結(jié)構(gòu),擁有不同類的兩個組件將會生成不同的樹形結(jié)構(gòu)。

對于同一層級的一組子節(jié)點,它們可以通過唯一id進行區(qū)分。

5.React中的props和state的用法

==props:==一般用于父組件向子組件通信,在組件之間通信使用。

==state:==一般用于組件內(nèi)部的狀態(tài)維護,更新組建內(nèi)部的數(shù)據(jù),狀態(tài),更新子組件的props等。

6.Redux的流程 中間件(thunks saga logger dvtools的理解,用法)

7.比較redux和vuex的區(qū)別?https://blog.csdn.net/hyupeng1006/article/details/80755667

8.react router3是否用過,router4是否用過,3到4有什么改變?https://blog.csdn.net/qq_35484341/article/details/80500237

9.react是什么層面上的框架,數(shù)據(jù)流是單向流還是雙向綁定?視圖層的框架,單項數(shù)據(jù)流

10.webpack?基本使用

JS篇

1.js的垃圾回收機制是什么原理(js)!!

標記清除 、引用計數(shù)

2.經(jīng)常遇到的解決js兼容性問題列舉至少三個(js)!?https://www.cnblogs.com/yufann/p/Browser1.html

3.不設(shè)置寛高的div,用至少兩種方法,讓它相對于頁面水平垂直居中。(css)!

flex布局,絕對定位+相對定位

4.react-redux的實現(xiàn)原理(react框架)!!

https://www.cnblogs.com/hhhyaaon/p/5863408.html

**5.git經(jīng)常用到的命令,至少五個,并且要說出每個命令是干什么的。(git add .)(git commit -m “”)(git push origin?)(git clone)(git branch)(git checkout)!

6.react-router的實現(xiàn)原理 !

history

7.react的生命周期(必須知道并且知道每個的作用)!

8.數(shù)組的方法(至少說出6個)(js)!?concat、join、pop、push、reverse、shift、sort、toString、valueOf、unshift

9.閉包的原理(js)!

閉包是指有權(quán)訪另一個函數(shù)作用域中的變量的函數(shù)

10.偽數(shù)組轉(zhuǎn)成真數(shù)組的方法(至少兩種方法) (js)!!

1.使用Array.prototype.slice.call();

2.Array.from

11.rgba和opacity的區(qū)別(css)!

有opacity屬性的所有后代元素都會繼承 opacity 屬性,而RGBA后代元素不會繼承不透明屬性

12.link和inport的區(qū)別 (js)!

13.哪些操作會造成內(nèi)存泄露(至少三個)(js)!!!

意外的全局變量引起的內(nèi)存泄露

閉包引起的內(nèi)存泄露

沒有清理的DOM元素引用

被遺忘的定時器或者回調(diào)

14.react虛擬DOM實現(xiàn)原理 !!

js模擬dom結(jié)構(gòu),每次重新渲染時重新生成dom樹,與老的樹進行diff算法對比

React會在內(nèi)存中維護一個虛擬DOM樹,對這個樹進行讀或?qū)?,實際上是對虛擬DOM進行。當數(shù)據(jù)變化時,React會自動更新虛擬DOM,然后將新的虛擬DOM和舊的虛擬DOM進行對比,找到變更的部分,得出一個diff,然后將diff放到一個隊列里,最終批量更新這些diff到DOM中。

15.call,apply,bind的區(qū)別(js)!!!

1.相同點

(1)都可以用來改變函數(shù)的this的指向

(2)使用時第一個參數(shù)都是this所指向的對象,并且都可以后續(xù)參數(shù)傳參

2.區(qū)別

(1)call跟apply只是參數(shù)傳參的方式不一樣,call以多個參數(shù)形式傳入,而apply則以數(shù)組的形式傳入

(2)bind傳參的方式可以跟call一樣,由于bind返回的是一個函數(shù),因此我們也可以在調(diào)用的時候在進行傳參

16.ES6有哪些新特性 !

**17.H5新特性(canvas,video,webstorage,語義化標簽,表單控件 等) **

19.關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的區(qū)別和好處 !!!

關(guān)系型數(shù)據(jù)庫(Mysql和Oracle)

1.表和表、表和字段、數(shù)據(jù)和數(shù)據(jù)存在著關(guān)系

優(yōu)點:

1.數(shù)據(jù)之間有關(guān)系,進行數(shù)據(jù)的增刪改查的時候是非常方便的

2.關(guān)系型數(shù)據(jù)庫是有事務(wù)操作的,保證數(shù)據(jù)的完整性和一致性。

缺點:

1.因為數(shù)據(jù)和數(shù)據(jù)是有關(guān)系的,底層是運行了大量的算法

大量算法會降低系統(tǒng)的效率,會降低性能

2.面對海量數(shù)據(jù)的增刪改查的時候會顯的無能為力

3.海量數(shù)據(jù)對數(shù)據(jù)進行維護變得非常的無力

適合處理一般量級的數(shù)據(jù)(銀行轉(zhuǎn)賬和錢)

非關(guān)系數(shù)據(jù)庫的(redis和MangDB)

為了處理海量數(shù)據(jù),非關(guān)系數(shù)據(jù)庫設(shè)計之初就是為了替代關(guān)系型數(shù)據(jù)庫的關(guān)系

優(yōu)點:

1.海量數(shù)據(jù)的增刪改查是可以的

2.海量數(shù)據(jù)的維護和處理非常輕松

缺點:

1.數(shù)據(jù)和數(shù)據(jù)沒有關(guān)系,他們之間就是單獨存在的

2.非關(guān)系數(shù)據(jù)庫沒有關(guān)系,沒有強大的事務(wù)關(guān)系,沒有保證數(shù)據(jù)的完整性和安全性

20.web網(wǎng)絡(luò)請求的過程 !!!

https://blog.csdn.net/SEU_Calvin/article/details/53304406

其他篇

1.如何跨域?

1、通過jsonp跨域 2、通過修改document.domain來跨子域 3、使用window.name來進行跨域 4、使用HTML5中新引進的window.postMessage方法來跨域傳送數(shù)據(jù)(但是缺點是IE6、IE7不支持)



????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????未完待續(xù)......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、JS的數(shù)據(jù)類型只有浮點型,沒有整型。null,underfined,boolean,number,string...
    6e5e50574d74閱讀 2,500評論 2 1
  • 2018web前端最新面試題總結(jié) 一、Html/Css基礎(chǔ)模塊 基礎(chǔ)部分 什么是HTML?答:? HTML并不是...
    duans_閱讀 4,717評論 3 27
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,177評論 25 708
  • 文/陶蓉 茶起源于中國,數(shù)千年來,無論時代如何更迭、怎樣變遷,茶始終伴隨并滋養(yǎng)著人們。茶對于我們而言,已經(jīng)超出飲品...
    陶蓉子閱讀 801評論 5 6
  • 道 出世無為參妙法 王道易守民心灰 陰陽互化分天地 不求微名照汗青
    白衣小潘安閱讀 255評論 2 0

友情鏈接更多精彩內(nèi)容