漢得面試題

2021-10-25 07:08:11 字數 2633 閱讀 3813

盒子一共有四個屬性:分別為外邊距(margin)、邊框(border)、內邊距(padding)、內容(content).

:如何計算寬度

盒子總大小的計算公式為:盒子的實際高度x盒子的實際寬度。

元素實際寬度(盒子的寬度)=左邊界+左邊框+左填充+內容寬度+右填充+右邊框+右邊界。

元素實際寬度(盒子的高度)=上邊界+上邊框+上填充+內容高度+下填充+下邊框+下邊界。

意思就是內容本身的寬高以外還要加上的盒子增加的寬高

jquery是使用選擇器( $ )選取dom物件,對其進行賦值、取值、事件繫結等操作,其實和原生的html的區別只在於可以更方便的選取和操作dom物件,而資料和介面是在一起的。比如需要獲取label標籤的內容:$(「lable」).val();,它還是依賴dom元素的值。

vue則是通過vue物件將資料和view完全分離開來了。對資料進行操作不再需要引用相應的dom物件,可以說資料和view是分離的,他們通過vue物件這個vm實現相互的繫結。這就是傳說中的mvvm。

**

ajax:

$.ajax(,

success : function (response)

})axios:

axios(

}).then( function(response)).catch( function(error) )

看**區別不大

其實jquery 將請求技術進行了封裝 變成了 ajax , 而 通過 promise 又把 ajax 進行封裝就成了 axios。

在現在的前端 mvvm 模式下 axios 更適合於資料請求。

mvvm(model-view-viewmodel), 源自於經典的 model–view–controller(mvc)模式。mvvm 的出現促進了 gui 前端開發與後端業務邏輯的分離,極大地提高了前端開發效率。mvvm 的核心是 viewmodel 層,它就像是乙個中轉站(value converter),負責轉換 model 中的資料物件來讓資料變得更容易管理和使用,該層向上與檢視層進行雙向資料繫結,向下與 model 層通過介面請求進行資料互動,起呈上啟下作用。view 層展現的不是 model 層的資料,而是 viewmodel 的資料,由 viewmodel 負責與 model 層互動,這就完全解耦了 view 層和 model 層,這個解耦是至關重要的,它是前後端分離方案實施的最重要一環。

什麼是生命週期?

從vue例項建立、執行、到銷毀期間,總是伴隨著各種各樣的事件,這些事件統稱為生命週期

生命週期鉤子=生命週期函式=生命週期事件

主要的生命週期函式分類

1、var vm = new vue({}) 表示開始建立乙個vue的例項物件

2、剛初始化乙個空的vue例項物件,此時,在這個物件上,只有一些預設的生命週期函式和預設的事件,其他的都未建立

3、beforecreate生命週期函式執行時,data和methods中的資料和方法都還沒有初始化

4、初始化data和methods

5、在created中,data和methods都已經初始化好了,如果要操作data中的資料或是呼叫methods中的方法,最早只能在created中操作

6、這個綠框中內容表示vue開始編輯模板,把vue**中的那些指令進行執行,最終,在記憶體中生成乙個編譯好的最終的模板字串物件,然後把這個字串物件,渲染為記憶體中的dom,此時,只是在記憶體中渲染好了模板,並沒有把模板掛載到真正的頁面中去

7、beforemount函式執行時,模板已經在記憶體中編譯好了,但尚未掛載到頁面中去,此時,頁面還是舊的

8、將記憶體中編譯好的模板,真實的替換到瀏覽器的頁面中區

9、mounted是在頁面載入完成後執行的函式,如果要通過某些外掛程式操作頁面上的dom節點,最早是在mounted中進行

10、只要執行完了mounted,就表示整個vue例項物件已經初始化完畢了,此時元件已經脫離建立階段,進入執行階段。

11、藍框中是元件的執行階段,執行階段的生命週期函式只有兩個:beforeupdate和updated,這兩個事件會根據data資料的改變,有選擇的觸發0次到多次

12、當執行beforeupdate時,頁面中顯示的資料還是舊的,此時data中的資料是最新的,頁面尚未和最新資料同步

13、這一步,先根據data中最新的資料,在記憶體中,重新渲染出乙份最新的記憶體dom樹,當記憶體dom樹被更新之後,會把最新的的記憶體dom樹,重新渲染到真實的頁面當中,這時,就完成資料從data(model層)->view(檢視層)的更新

14、updated執行時,頁面和data資料已經保持同步,都是最新的

15、當執行beforedestroy鉤子函式時,vue例項就已經從執行階段進入銷毀階段,此時,組建中所有data、methods、以及過濾器,指令等,都處於可用狀態,此時還未真正執行銷毀過程

16、當執行destroyed函式時,元件已經被完全銷毀,此時組建中所有data、methods、以及過濾器,指令等,都已經不可用了

面試題 03 04 漢諾塔問題

在經典漢諾塔問題中,有 3 根柱子及 n 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按公升序依次套在第一根柱子上 即每乙個盤子只能放在更大的盤子上面 移動圓盤時受到以下限制 1 每次只能移動乙個盤子 2 盤子只能從柱子頂端滑出移到下一根柱子 3 盤子只能疊在比它大的盤子...

面試題 08 06 漢諾塔問題

面試題 08.06.漢諾塔問題 簡單題 遞迴 在經典漢諾塔問題中,有 3 根柱子及 n 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按公升序依次套在第一根柱子上 即每乙個盤子只能放在更大的盤子上面 移動圓盤時受到以下限制 1 每次只能移動乙個盤子 2 盤子只能從柱子頂端滑...

面試題 08 06 漢諾塔問題

在經典漢諾塔問題中,有 3 根柱子及 n 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按公升序依次套在第一根柱子上 即每乙個盤子只能放在更大的盤子上面 移動圓盤時受到以下限制 1 每次只能移動乙個盤子 2 盤子只能從柱子頂端滑出移到下一根柱子 3 盤子只能疊在比它大的盤子...