面試準備題

1.如何串行執行100個Promise對象(reduce函數)

2.如何實現React無關係組件的通信(發佈訂閱,Event包)

3.正則表達式匹配

4.原生js封裝一個錯誤彈窗組件

5.寫一個函數,根據JSX語法生成對應的DOM

6.connect函數的原理是什麼

7.高階組件的缺點

8.redux的缺點,性能問題

9.for in 和 for of 的區別

for in對對象使用 for of對數組使用

10chrome的sort方法是什麼排序:

V8 引擎 sort 函數只給出了兩種排序 InsertionSort 和 QuickSort,數量小於10的數組使用 InsertionSort,比10大的數組則使用 QuickSort

CSS

1.position float display一起設置怎麼樣

2.flex實現左側固定,右側自適應

左側聲明div爲300px,右側聲明flex-grow:1默認填滿剩餘寬度

3.CSS3動畫(定義animation,transform移動,keyframe等)

4.不改變width,實現圖片縮小到300px

<img src="/hello.jgp" style="width:400px;height:400px !important"/>

因爲不能直接改變內聯style的值,而且用!important聲明,那麼另外通過選擇器訪問並覆蓋也不行,我們可以用max-width來改變

max-width:300px,再就是用CSS3的scale屬性,transform:scale(0.75,0.75)

HTML

1.img標籤下載的圖片瀏覽器如何緩存,如何再次調用它

JSDOM

1.appendChild循環追加子節點無效?

在循環外定義了子元素:let button = document.createElement('BUTTON'),let parentDiv = ducument.quertSelectorAll('div');

循環內appendChild:for(let i =0;i<parentDiv.length;i++) {

    parentDiv[i].appendChile(btn)

}

這樣無效,因爲button這個元素作爲一個DOM元素只能有一個父元素,這種情況最後只會被插入都最後一個div元素的子節點上,避免的方法是在循環內創建子元素button

2.vDOM一定比真實DOM效率高嗎?不一定,React並沒有保證vDOM一定比真實DOM效率高,在很簡單的操作DOM的時候,肯定是操作真實的DOM效率高,因爲最終vDOM還是要調用瀏覽器的documentAPI去操作DOM,但是在批量操作,涉及到很多DOM的變化的時候,vDOM可以給我們更加清晰的操作方式,React的diff算法可以去批量更新DOM

3.瀏覽器和node的event loop的區別:node有micro task,node11後不再有區別

4.理解babel的運行規則:https://www.jianshu.com/p/e9b94b2d52e2

 

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