前端面試題整理

有關微信小程序的面試題

1.簡單描述下微信小程序的相關文件類型?

微信小程序項目結構主要文件類型,以下:css

①WXML是框架設計的一套標籤語言,結合基礎組件、事件系統,能夠構建出頁面的結構。內部主要是微信本身定義的一套組件。html

②WXSS是一套樣式語言,用於描述WXML的組件樣式前端

③js邏輯處理,網絡請求git

④json小程序設置,如註冊頁面,頁面標題及tabBarweb

⑤app.json (必需要有這個文件,若是沒有這個文件,項目將沒法運行) 此文件爲配置入口文件,整個小程序的全局配置。包括頁面註冊,網絡設置,以及小程序的window背景色,配置導航條樣式,配置默認標題。面試

⑥app.js(必需要有這個文件,沒有也會報錯)可是這個文件建立一下就行 什麼都不須要寫,之後能夠在這個文件中監聽並處理小程序的生命週期函數、生命全局變量。數據庫

⑦app.wxssjson

2.你是怎麼封裝微信小程序的數據請求?

①將全部的接口放在統一的js文件中並導出小程序

②在app.js中建立封裝請求數據的方法微信小程序

③在子頁面中調用封裝的方法請求數據

3.有哪些參數傳值的方法?

①給html元素添加自定義屬性(如:data-name)而後經過e.currentTarget.dataset.name或者onload的param參數獲取。但data-名稱不能有大寫字母和不能夠存放對象

②設置id的方法標識來傳值,經過e.currentTaraget.id獲取設置的id的值,而後經過全局對象的方式來傳遞數值

③在navigator中添加參數傳值(就是url傳值)

4.你使用過哪些方法,來提升微信小程序的應用速度

①提升頁面加載速度

②用戶行爲預測

③減小默認data的大小

④組件化方案

5.小程序跟原生App哪一個好?

小程序除了擁有公衆號的低開發成本、低獲客成本以及無需下載等優點,在服務器請求延時與用戶使用體驗上都獲得較大幅度的提高,使其可以承載跟複雜的服務功能以及用戶得到更好的用戶體驗。

6.簡述微信小程序原理?

微信小程序採用JavaScript、WXML、WXSS三種技術進行開發,從技術講跟如今的前端開發差很少,但深刻挖掘的話卻又有所不一樣。

JavaScript:首先JavaScript的代碼是運行在微信App中的,並非運行在瀏覽器中,所以一些H5技術的應用須要微信App提供對應的API支持,而這限制住了H5技術的應用,且其不能稱爲嚴格的H5,同理,微信提供獨有的某些API,H5也不支持或支持的不是很好。

WXML:WXML微信本身基於XML語法開發的,所以開發時,只能使用微信提供的現有標籤,HTML的標籤沒法使用。

WXSS:WXSS具備css的大部分特性,但並非全部都支持,並且支持什麼並無詳細的文檔。

微信的架構 是數據驅動的架構模式,它的ui跟數據是分離的,全部頁面的更新,都須要經過對數據的更改來實現。

小程序分爲兩個部分webview和appService.其中webview主要來展示UI,appService有來處理業務邏輯、數據及接口調用。它們在兩個進程中進行,經過系統層JSBridge實現通訊,實現UI的渲染、時間的處理。

7.分析下微信小程序的優劣勢?

優點:

 ①無需下載,

②打開速度快

③開發成本低

④安卓上能夠添加到桌面,與原生App差很少

⑤爲用戶提供良好的安全保障。小程序的發佈微信擁有一套嚴格的審查流程,不能經過審查的小程序沒法上線。

劣勢:

①限制較大,頁面大小不能超過1m,不能打開超過5個層級的頁面。

②樣式單一。小程序的部分組件已是成型的,樣式不能夠修改。例如:幻燈片、導航

③推廣面窄。不能分享朋友圈,只能分享給朋友,附近小程序推廣。其中附近小程序也受到微信的限制。

④依託於微信,沒法開發後臺管理功能。

8.微信小程序與H5的區別?

①運行環境不一樣

②開發成本不一樣

③獲取系統級權限的不一樣

④應用在生產環境的運行流暢度

SVG與Git優缺點比較

1.SVG優缺點

優勢:

①管理方便 ,邏輯明確,符合通常人的思惟習慣。

②易於管理,集中式服務器更能保證安全性。

③代碼一致性很是高

④適合開發人數很少的項目開發

缺點:

①服務器壓力太大,數據庫容易暴增。

②若是不能鏈接到服務器,基本上不能夠工做,看上面第二步,若是服務器不能鏈接,就不能提升,還原,對比等等。

③不適合開源開發(人數太多)。可是通常集中式管理的有很是明確的權限管理機制(例如分支訪問),能夠實現分層管理,從而很好的解決開發人數衆多的問題。

2.Git優缺點

優勢:

①適合分佈式開發,強調個體

②公衆服務器壓力和數據量都不會太大

③速度快、靈活

④任意兩個開發者之間能夠很容易的解決衝突。

⑤離線工做

缺點:

①學習週期相對而言比較長。

②不符合常規思惟

③代碼保密性差,一旦開發者把整個庫克隆下來就能夠徹底公開全部的代碼和版本信息。

Git的相關問題

1.git fetch 跟 git pull 的區別

git fetch :至關於從遠程獲取最新版本到本地 , 不會自動 merge

git pull :至關因而從遠程獲取最新版本並merge到本地 。 上述命令至關於git fetch 和 git merge  

實際上 git fetch 更安全一些 由於在merge前,咱們能夠查看更新狀況,而後決定是否合併。

 2.git reset 跟 git rebase 的區別

git reset: 回滾到某次提交    git reset --soft 這次提交以後的修改會被退回到暫存區    git reset --hard  這次提交以後的修改不作任何保留, git status 乾淨的工做區 

git rebase :當兩個分支不在一條直線上,須要執行merge操做時,使用該命令操做。  該命令執行時極有可能顯示merge失敗,使用 git diff 查看衝突內容,手動修改衝突, git add filename  ,表示衝突已解決,再執行 git rebase --continue ,繼續rebase 。

 

參考:

http://www.bslxx.com/a/mianshiti/tiku/2017/1020/1027.html

http://blog.csdn.net/yuwq123/article/details/52748009

相關文章
相關標籤/搜索