說說你對http的理解:
http協(xié)議其實就是超文本傳輸協(xié)議妻往,是用于從WWW服務器傳輸超文本到本地瀏覽器的傳送協(xié)議邓厕。
http上一個應用層協(xié)議,由請求和響應構(gòu)成,是一個標準的客戶端服務器協(xié)議
http上一個無狀態(tài)的協(xié)議
http與https的區(qū)別:
http是超文本傳輸協(xié)議莹痢,信息是明文傳輸,https是具有安全性的SSL加密傳輸
http采用的是80端口連接墓赴,而https使用的端口是443
hhtps協(xié)議需要用到ca申請證書竞膳,一般免費證書較少,需要收費诫硕,而http不需要
http連接相對簡單坦辟,是無狀態(tài)的,而https協(xié)議是有SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸章办,身份認證的網(wǎng)絡協(xié)議锉走,它比http協(xié)議更加安全
doctype的作用:
DOCTYPE是document type (文檔類型) 的縮寫。
<!DOCTYPE >聲明位于文檔的最前面藕届,處于標簽之前挪蹭,它不是html標簽。
主要作用是告訴瀏覽器的解析器使用哪種HTML規(guī)范或者XHTML規(guī)范來解析頁面
由于不同瀏覽器對頁面渲染有不同的標準休偶,所以不聲明doctype會產(chǎn)生一定的差異梁厉,這種方式叫做混雜模式
實現(xiàn)一個div左上角到右下角的移動:
- 改變div的left值為window的寬度-div的寬度
top值為window的高度-div的高度- css3的transition屬性
箭頭函數(shù)與普通函數(shù)的區(qū)別:
箭頭函數(shù)的 this 永遠指向其上下文的 this ,任何方法都改變不了其指向椅贱,如 call() , bind() , apply()
普通函數(shù)的this指向調(diào)用它的那個對象
說說你對promise對象的理解:
- promise是異步編程的一種解決方法懂算,從語法上說promise是一個對象只冻,從它可以獲取異步操作的消息
- promise主要作用是:可以把異步操作以同步操作的流程表達出來庇麦,避免了層層嵌套的回調(diào)函數(shù)。此外喜德,promise對象提供了統(tǒng)一的接口山橄,使得控制異步操作更簡單
- promise對象的特點:
- 對象狀態(tài)不受外界影響(公3種pending(進行中),resolved(已完成)舍悯,reject(已失敽嚼狻))。
只有異步操作的結(jié)果可以決定是當前哪一種狀態(tài)萌衬,任何其他操作都無法改變- 一旦狀態(tài)改變就不會再變饮醇,任何時候都可以得到這個結(jié)果。
promise對象改變只有兩種可能:從pending到resolved秕豫,從pending到reject
- promise對象的缺點:
- 無法取消promise朴艰,一旦創(chuàng)建就立即執(zhí)行观蓄,無法中途取消
- 如果不設置回調(diào)函數(shù),promise內(nèi)部拋出錯誤祠墅,不會反映到外部
- 當處于pending狀態(tài)時侮穿,無法得知目前進展到那個階段(剛剛開始還是即將完成)
vuex中mutaions與action的區(qū)別:
mutaions:同步操作,可以直接修改state中的值毁嗦,專注與修改state亲茅,理論上是修改state的唯一途徑
action:異步操作,不可以直接修改state狗准,專注于業(yè)務代碼克锣,異步請求等
canvas與svg的區(qū)別:
canvas:
- canvas 通過 JavaScript 來繪制 2D 圖形。
- canvas一旦圖形被繪制完成驶俊,它就不會繼續(xù)得到瀏覽器的關(guān)注娶耍。
- 如果其位置發(fā)生變化,那么整個場景也需要重新繪制饼酿,包括任何或許已被圖形覆蓋的對象榕酒。
- canvas不依賴分辨率。
- canvas 通過 JavaScript 來繪制 2D 圖形故俐。
- canvas支持事件處理器想鹰。
- canvas最適合帶有大型渲染區(qū)域的應用程序(比如谷歌地圖)。
- canvas復雜度高會減慢渲染速度(任何過度使用 DOM 的應用都不快)药版。
- canvas不適合游戲應用辑舷。
svg:
- svg是一種使用 XML 描述 2D 圖形的語言。
- 可以為svg每個元素附加 JavaScript 事件處理器槽片。
- 每個被繪制的圖形均被視為對象何缓。如果 SVG 對象的屬性發(fā)生變化,那么瀏覽器能夠自動重現(xiàn)圖形还栓。
- svg依賴分辨率碌廓。
- svg是一種使用 XML 描述 2D 圖形的語言。
- svg依賴分辨率剩盒。
- svg不支持事件處理器谷婆。
- svg弱的文本渲染能力。
- svg能夠以 .png 或 .jpg 格式保存結(jié)果圖像辽聊。
- svg最適合圖像密集型的游戲纪挎,其中的許多對象會被頻繁重繪。
html中data-*的作用:
data-屬性用于存儲私有頁面應用的自定義數(shù)據(jù)
data-屬性可以在所有的html元素中嵌入數(shù)據(jù)
自定義的數(shù)據(jù)可以讓頁面擁有更好的交互體驗
如何實現(xiàn)斷點續(xù)傳:
可以利用H5的FileApi的slice()方法跟匆,將文件切割成數(shù)份异袄,然后再分批上傳
或通過websocket接口實現(xiàn)
說說你對spa單頁面應用的理解:
SPA 是一種特殊的 Web 應用,是加載單個 HTML 頁面并在用戶與應用程序交互時動態(tài)更新該頁面的玛臂。它將所有的活動局限于一個 Web 頁面中烤蜕,僅在該 Web 頁面初始化時加載相應的 HTML 埠帕、 JavaScript 、 CSS 玖绿。一旦頁面加載完成敛瓷, SPA 不會因為用戶的操作而進行頁面的重新加載或跳轉(zhuǎn),而是利用 JavaScript 動態(tài)的變換 HTML(采用的是 div 切換顯示和隱藏)斑匪,從而實現(xiàn)UI與用戶的交互呐籽。在 SPA 應用中,應用加載之后就不會再有整頁刷新蚀瘸。相反狡蝶,展示邏輯預先加載,并有賴于內(nèi)容Region(區(qū)域)中的視圖切換來展示內(nèi)容贮勃。
優(yōu)點:
- 避免了頁面的重新加載贪惹,可以提供較為流暢的用戶體驗
- 得益于ajax,可以實現(xiàn)無跳轉(zhuǎn)刷新寂嘉,通過與瀏覽器的history機制配合奏瞬,與haxh的變化推動界面變化
- 只需要使用支持H5和C3的瀏覽器就可以實現(xiàn)SPA機制,所以使用和開發(fā)門檻較低
缺點:
1.對SEO優(yōu)化沒有普通的網(wǎng)頁開發(fā)這么友好泉孩,因為沒有了一頁一頁的網(wǎng)頁給搜索爬蟲去爬取信息硼端,需要花費其他的工作去做SEO優(yōu)化
1.以SPA方式開發(fā)的網(wǎng)站不容易管理也不夠安全
說說你對vue-router的理解:
vue-router是vue官方的路由管理器,默認使用hash模式寓搬。通過將路徑與組件對應珍昨,根據(jù)不同的URL地址在頁面中渲染對應的vue組件
功能:
- 嵌套的路由/視圖表
- 模塊化的、基于組件的路由配置
- 路由參數(shù)句喷、查詢镣典、通配符
- 基于 Vue.js 過渡系統(tǒng)的視圖過渡效果
- 細粒度的導航控制
- 帶有自動激活的 CSS class 的鏈接
- HTML5 歷史模式或 hash 模式,在 IE9 中自動降級
- 自定義的滾動條行為
簡談hash模式與history模式
hash模式:
- hash模式的原理是onhashchange事件唾琼,通過window對象監(jiān)聽該事件兄春。
- 在hash模式下,當url發(fā)生變化時父叙,瀏覽器會將其記錄下來神郊,所以在該模式下肴裙,即便瀏覽器沒有請求服務器趾唱,頁面也會與url一一對應。
- 在hash模式下修改的url#后面的內(nèi)容蜻懦,所以當URL發(fā)生改變時甜癞,頁面不會重新加載.
- 其主要api有:history.go(), history.back()宛乃, history.forward()
history模式:
- history interface是瀏覽器歷史記錄棧提供的接口悠咱,通過back()蒸辆,forward(),go()等方法析既,我們可以讀取瀏覽器歷史記錄棧的信息躬贡,進行各種跳轉(zhuǎn)操作。
- 在使用history模式時眼坏,是需要后臺的配置支持的拂玻,當我們的應用是單頁面應用,如果后臺沒有正確配置宰译,直接訪問會返回404檐蚜。所以我們可以在服務端增加一個覆蓋所有情況的候選資源,當url匹配不到時沿侈,則返回我們配置的那個靜態(tài)資源
簡談mvvm框架
m:model模型闯第,也就是數(shù)據(jù)層,負責存儲數(shù)據(jù)
v:視圖層缀拭,主要是從viewmodel層獲取數(shù)據(jù)咳短,然后顯示
vm:視圖模型,相當于model與視圖層的橋梁蛛淋,主要負責處理業(yè)務邏輯