千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

1.簡(jiǎn)述微信小程序原理
微信小程序采用(lavascript、 wXMNL、 wxss三種技術(shù)進(jìn)行開(kāi)發(fā),本質(zhì)就是一個(gè)單頁(yè)面應(yīng)用,所有的頁(yè)面渲染和事件處理,都在一個(gè)頁(yè)面內(nèi)進(jìn)行,但又可以通過(guò)微信客戶端調(diào)用原生的各種接口微信的架構(gòu),是數(shù)據(jù)驅(qū)動(dòng)的架構(gòu)模式,它的ur和數(shù)據(jù)是分離的,所有的頁(yè)面更新,都需要通過(guò)對(duì)數(shù)據(jù)的更改來(lái)實(shí)現(xiàn)小程序分為兩個(gè)部分webview和 appservice。其中 webview主要用來(lái)展現(xiàn)uT,appservice有來(lái)處理業(yè)務(wù)邏輯、數(shù)據(jù)及接口調(diào)用。它們?cè)趦蓚€(gè)進(jìn)程中運(yùn)行,通過(guò)系統(tǒng)層(sBridge實(shí)現(xiàn)通信,實(shí)現(xiàn)(Ur的渲染、事件的處理
2.小程序里面的雙向綁定是通過(guò)調(diào)用this.setData({“這里是要修改的值”})來(lái)修改。
3.小程序中表單元素發(fā)生變化時(shí),data中的值跟著變化怎么做?
當(dāng)表單內(nèi)容發(fā)生變化時(shí),會(huì)觸發(fā)表單元素上綁定的方法,然后在該方法中,通過(guò)this.setData(keyrvalue})來(lái)將表單上的值賦值給data中的對(duì)應(yīng)值。
4.如何自定義小程序的navigationBar
·思路
隱藏原生樣式獲取膠囊按鈕、狀態(tài)欄相關(guān)數(shù)據(jù)以供后續(xù)計(jì)算根據(jù)不同機(jī)型計(jì)算出該機(jī)型的導(dǎo)航欄高度,進(jìn)行適配編寫新的導(dǎo)航欄引用到頁(yè)面
5.wx:if和hidden的區(qū)別
1、當(dāng)元素頻繁切換是否顯示時(shí)使用 hidden,因?yàn)閣xcif 會(huì)頻繁地銷毀渲染元素
2、當(dāng)元素不頻繁切換是否顯示時(shí)使用wx:if,因?yàn)閣x:if 會(huì)避免頁(yè)面加載時(shí)渲染過(guò)多,導(dǎo)致頁(yè)面加載緩慢
6.小程序的wxss和css有哪些不一樣的地方?
wxss和css類似
(1)尺寸單位rpx
rpx是響應(yīng)式像素,可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)。
(2)使用@import標(biāo)識(shí)符來(lái)導(dǎo)入外聯(lián)樣式。
7.小程序頁(yè)面有哪些傳遞數(shù)據(jù)的方法?
(1)使用全局變量實(shí)現(xiàn)數(shù)據(jù)傳遞。
在app.js文件中定義全局變量globalData,將需要存儲(chǔ)的信息存放在里面
使用的時(shí)候直接調(diào)用getAPP()拿到存儲(chǔ)的信息
(2)使用wx.navigateTo與wx.redirectTo的時(shí)候,可以將部分?jǐn)?shù)據(jù)放在url里面,并在新頁(yè)面onLoad的時(shí)候初始化
(3)使用本地緩存storage
8.小程序的(頁(yè)面)生命周期函數(shù)
(1)onLoad頁(yè)面加載時(shí)觸發(fā) 一個(gè)頁(yè)面只會(huì)調(diào)用一次。
(2)onshow() 頁(yè)面顯示/切入前臺(tái)時(shí)觸發(fā)。不建議在這里調(diào)用接口
(3)onReady()頁(yè)面初次渲染完成時(shí)觸發(fā)。一個(gè)頁(yè)面只會(huì)調(diào)用一次,代表頁(yè)面已經(jīng)準(zhǔn)備完成可以和試圖層進(jìn)行交互
(4)onHide()頁(yè)面隱藏/切入后臺(tái)時(shí)觸發(fā)。
(5)onUnload()頁(yè)面卸載時(shí)觸發(fā)
9.那些方法可以提高微信小程序的應(yīng)用速度
1)提高頁(yè)面加載速度
2)用戶行為預(yù)測(cè)
3)減少默認(rèn)data的大小
4)組件化方案
10.怎么解決小程序的異步請(qǐng)求問(wèn)題?
在返回成功的回調(diào)里賣處理邏輯
promise異步
11.小程序關(guān)聯(lián)微信公眾號(hào)如何確定用戶的唯一性?
如果開(kāi)發(fā)者擁有多個(gè)移動(dòng)應(yīng)用,網(wǎng)站應(yīng)用,公眾號(hào)賬號(hào),可以通過(guò)unionid來(lái)區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€(gè)微信開(kāi)放平臺(tái)賬號(hào)下的移動(dòng)應(yīng)用,網(wǎng)站應(yīng)用和公眾號(hào),用戶的unionid是唯一的。
12.如何實(shí)現(xiàn)下拉刷新
1)首先在全局config中的window配置enablePullDownRefresh
2)在page中定義onpulldownrefresh鉤子函數(shù),到達(dá)下拉刷新條件后,該鉤子函數(shù)執(zhí)行,發(fā)起請(qǐng)求方法
3)請(qǐng)求返回后,調(diào)用wx.stopPullDownRefresh停止刷新