今天的上午下午各一場面試,雖然自己有精心准備,但是面試的效果還是不是很好,網上搜羅的面試題,算法題等等,都有消化吸收,也不能說完全沒有用吧,至少在筆試題還是用上了的,功夫也算是沒有白費,廢話不多說了,總結下今日面試不好的地方,砥礪前行!
上午面試:
1.promise的處理分為then,與catch,then的返回值被下一個promise對象所接收,這個then return的值是否有限制:
剛聽到這個題目的時候我是懵逼的,promise的then一般接收resolve函數,promise的catch一般接收錯誤的函數,then的返回值會被下一個promise接收,但是對於返回值的約定,這點不是很清楚,面試結束過后就去百度了一下,也沒找到結果,暫時作為一個疑點
2.vue-router的配置
vue-router有base與mode配置項,vue-router有使用過,但是沒有配置過,再次去翻看vue文檔,找到了結果
1 mode: 2 3 類型: string 4 5 默認值: "hash" (瀏覽器環境) | "abstract" (Node.js 環境) 6 7 可選值: "hash" | "history" | "abstract" 8 9 配置路由模式: 10 11 hash: 使用 URL hash 值來作路由。支持所有瀏覽器,包括不支持 HTML5 History Api 的瀏覽器。 12 13 history: 依賴 HTML5 History API 和服務器配置。查看 HTML5 History 模式。 14 15 abstract: 支持所有 JavaScript 運行環境,如 Node.js 服務器端。如果發現沒有瀏覽器的 API,路由會自動強制進入這個模式。 16 17 #
1 base: 2 3 類型: string 4 5 默認值: "/" 6 7 應用的基路徑。例如,如果整個單頁應用服務在 /app/ 下,然后 base 就應該設為 "/app/"。
3.vue的生命周期
vue生命周期的介紹網上有很多,今天面試的時候,我回答了8個周期的鈎子,回答的不是很全面,所以查閱了資料進行了補充
(1)beforecreate created
beforecreate:組件實例剛剛被創建, 組件屬性計算之前,如data屬性
created: 組件實例創建完成,屬性綁定,但是dom未生成
(2)beforemount beforemounted
beforemount:模版編譯掛載之前
mounted:模版編譯掛載之后
(3)beforeupdate updated
beforeupdate:更新之前
updated:更新之后
(4) beforedestory destoryed
beforedestory:組件銷毀之前調用
在下午的面試中,面試官問我,什么時候調用這個鈎子,我沒有用過,沒有回答,百度==》beforeDestroy
: 你確認刪除XX嗎? destroyed :當前組件已被刪除,清空相關內容
destoryed:銷毀之后
下午:
1.原生js實現一個居中彈窗:
關於彈窗實現我回答出來了,就是點擊彈窗按鈕生成一個div,append到body里面去,在回答居中的問題上,有點問題,除了display:flex,面試官問我是否有別的辦法,我說了給定位,然后left:50%,再margin-left:自身寬度的一半,他繼續問,如果未知寬度呢,當時除了display沒想到別的辦法,有點緊張,后來面完了在路上想到了,還是定位,視口寬度的一半減去元素自身寬度的一半,未知寬度可以用clientwidth來獲取,視口寬度:document.documentelement.clientwidth來獲取,即使是沒定定寬的元素,這樣也是可以獲取的。
2.原生輪播圖:
之前寫過很多次的原生輪播圖,但是面試的時候竟然沒回答出來,回來趕緊看了一遍,父容器相對定位,超出隱藏,里面放一個ul,絕對定位,ul的寬度為所有圖片的寬度,比如圖片為7張,ul的寬度為700%,然后里面的li全部浮動到左邊,通過改變ul的left值,來實現圖片的左右輪播。回答的時候腦抽來竟然說父容器也是絕對定位...
以上是今天面試的總結,結果應該不是很好,總結總結經驗,下次繼續,多儲備一些vue相關的知識,繼續加油!