1,怎樣添加、移除、復制、創(chuàng)建、查找節(jié)點
添加:appendChild(),insertBefore() 。
移除:insertBefore()
刪除:removeChild()
創(chuàng)建:createTextNode
復制:cloneNode()
查找:1.根據(jù)元素的id來查找? document.getElementById(elementId);
2.根據(jù)元素的class屬性 document.getElementsByClassName(className);
3.根據(jù)元素(即標簽)的標簽名 document.getElementsByTagName(tagName);
4.?根據(jù)選擇器secletor,(這個與標簽名有些類似)
? ? ? document.querySelector("");? 是在DOM樹下找到的第一個與之匹配的元素節(jié)點
? ? ? document.querySelectorAll(""); 是在DOM樹下全部與之匹配的元素節(jié)點
添加
appendChild() :?向節(jié)點的子節(jié)點列表的末尾添加新的子節(jié)點。添加節(jié)點

insertBefore() :?在指定的子節(jié)點之前添加一個節(jié)點。插入節(jié)點。它也可以插入/移除 已存在的元素。

移除節(jié)點

createTextNode:創(chuàng)建一個節(jié)點
復制?cloneNode() 復制節(jié)點并返回復制的節(jié)點?
2,在JavaScript中什么是偽數(shù)組?如何將偽數(shù)組轉化為標準數(shù)組
首先,偽數(shù)組不是一個數(shù)組,它是對象類型,下面是鑒定方法,偽數(shù)組就類似于下面的?lis

如何辨別別偽數(shù)組
1,具有l(wèi)ength屬性
2,按索引方式存儲數(shù)據(jù)
3,不具有數(shù)組的push,pop等方法
怎樣將偽數(shù)組轉換成真數(shù)組
1、Array.from() 方法

為true
2、sArr.slice() 當參數(shù)為空時將把整個數(shù)組(或者偽數(shù)組)中的內(nèi)容作為一個新數(shù)組返回。
3、Array.prototype.slice.call( 數(shù)據(jù) )
4、 聲明一個空數(shù)組,通過遍歷偽數(shù)組把它們重新添加到新的數(shù)組中
3,jQuery的事件委托on、live、delegate之間有什么區(qū)別
事件委派(委托):
事件委托就是利用冒泡的原理,把事件加到父元素或祖先元素上,觸發(fā)執(zhí)行效果。
事件委托優(yōu)點?
提高JavaScript性能。事件委托可以顯著的提高事件的處理速度,減少內(nèi)存的占用。
時間委派寫法
$(父元素).on('click','子元素選擇器',function(){
????//代碼塊
});
區(qū)別在哪里?
live 把事件委托交給了document(根節(jié)點),document 向下去尋找符合條件的元素(), 不用等待document加載結束也可以生效。
delegate可指定事件委托對象,相比于live性能更優(yōu),直接鎖定指定選擇器;
on事件委托對象選填,如果不填,即給對象自身注冊事件,填了作用和delegate一致。
band只能給調用它的時候已經(jīng)存在的元素綁定事件,不能給未來新增的元素綁定事件,存在局限性。
4,描述一次完整的http請求過程(輸入url敲回車發(fā)生了什么)
1.當開始在瀏覽器輸入網(wǎng)址時,瀏覽器就已經(jīng)開始通過歷史記錄或者書簽,找到已經(jīng)輸入的字符串對應的url了,然后智能提示,補全url
2。瀏覽器查找域名的 IP 地址。請求一旦發(fā)起,瀏覽器首先要做的事情就是解析這個域名,一般來說,瀏覽器會首先查看本地硬盤的 hosts 文件,看看其中有沒有和這個域名對應的規(guī)則,如果有的話就直接使用 hosts 文件里面的 ip 地址。如果在本地的 hosts 文件沒有能夠找到對應的 ip 地址,瀏覽器會發(fā)出一個 DNS本地DNS服務器一般都是你的網(wǎng)絡接入服務器商提供,比如中國電信,中國移動。查詢你輸入的網(wǎng)址的DNS請求到達本地DNS服務器之后,本地DNS服務器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結果,此過程是遞歸的方式進行查詢。如果沒有,本地DNS服務器還要向DNS根服務器進行查詢。本地DNS服務器繼續(xù)向域服務器發(fā)出請求,在這個例子中,請求的對象是.com域服務器。.com域服務器收到請求之后,也不會直接返回域名和IP地址的對應關系,而是告訴本地DNS服務器,你的域名的解析服務器的地址。最后,本地DNS服務器向域名的解析服務器發(fā)出請求,這時就能收到一個域名和IP地址對應關系,本地DNS服務器不僅要把IP地址返回給用戶電腦,還要把這個對應關系保存在緩存中,以備下次別的用戶查詢時,可以直接返回結果,加快網(wǎng)絡訪問。
3、瀏覽器向 web 服務器發(fā)送一個 HTTP 請求。在通過DNS域名解析后,獲取到了服務器的IP地址,在獲取到IP地址后,便會開始建立一次連接,這是由TCP協(xié)議完成的,主要通過三次握手進行連接:
第一次握手: 建立連接時,客戶端發(fā)送syn包(syn=j)到服務器,并進入SYN_SENT狀態(tài),等待服務器確認;
第二次握手: 服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態(tài);
第三次握手: 客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。
4、瀏覽器向服務器發(fā)送HTTP請求
5、服務器返回一個 HTTP 響應,瀏覽器接收響應
服務器在收到瀏覽器發(fā)送的HTTP請求之后,會將收到的HTTP報文封裝成HTTP的Request對象,并通過不同的Web服務器進行處理,處理完的結果以HTTP的Response對象返回,主要包括狀態(tài)碼,響應頭,響應報文三個部分。
狀態(tài)碼主要包括以下部分
1xx:指示信息–表示請求已接收,繼續(xù)處理。
2xx:成功–表示請求已被成功接收、理解、接受。
3xx:重定向–要完成請求必須進行更進一步的操作。
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現(xiàn)。
5xx:服務器端錯誤–服務器未能實現(xiàn)合法的請求。
響應頭主要由Cache-Control、 Connection、Date、Pragma等組成。
響應體為服務器返回給瀏覽器的信息,主要由HTML,css,js,圖片文件組成。
6、頁面渲染。如果說響應的內(nèi)容是HTML文檔的話,就需要瀏覽器進行解析渲染呈現(xiàn)給用戶。整個過程涉及兩個方面:解析和渲染。在渲染頁面之前,需要構建DOM樹和CSSOM樹。
5,http狀態(tài)碼有哪些
1**(信息類):表示接收到請求并且繼續(xù)處理
100? Continue? 繼續(xù),一般在發(fā)送post請求時,已發(fā)送了http header之后服務端將返回此信息,表示確認,之后發(fā)送具體參數(shù)信息
2**(響應成功):表示動作被成功接收、理解和接受
200? OK? ? ? ? 正常返回信息
201? Created? ? 請求成功并且服務器創(chuàng)建了新的資源
202? Accepted? 服務器已接受請求,但尚未處理
3**(重定向類):為了完成指定的動作,必須接受進一步處理
301? Moved Permanently? 請求的網(wǎng)頁已永久移動到新位置。
302? Found? ? ? 臨時性重定向。
303? See Other? 臨時性重定向,且總是使用 GET 請求新的 URI。
304? Not Modified 自從上次請求后,請求的網(wǎng)頁未修改過。
4**(客戶端錯誤類):請求包含錯誤語法或不能正確執(zhí)行
400? Bad Request? 服務器無法理解請求的格式,客戶端不應當嘗試再次使用相同的內(nèi)容發(fā)起請求。
401? Unauthorized 請求未授權。
403? Forbidden? 禁止訪問。
404? Not Found? 找不到如何與 URI 相匹配的資源。
5**(服務端錯誤類):服務器不能正確執(zhí)行一個正確的請求
500? Internal Server Error? 最常見的服務器端錯誤。
503? Service Unavailable 服務器端暫時無法處理請求(可能是過載或維護)。
6,自我介紹
7,項目介紹
8,后臺管理系統(tǒng)權限你是如何實現(xiàn)的?
1.定義靜態(tài)路由表(無需權限的使用)
2.定義權限路由表(和后臺返回的權限進行匹配用)
開始登錄判斷登錄是否成功,(成功后將返回的登錄token值存儲到本地里,用導航守衛(wèi)進行判斷本地是否存在返回的這個token值)沒有成功繼續(xù)登錄,
成功的話判斷是否已經(jīng)獲取了用戶的權限列表,沒有獲取重新獲取權限列表,
獲取到了將權限數(shù)據(jù)存儲到vuex中,
(vuex中的數(shù)據(jù)是公共數(shù)據(jù),我們在寫組件時任何一個地方都可能用到這個數(shù)據(jù),所以將這個權限數(shù)據(jù)存儲到vuex中,方便使用),
然后將vuex中的權限數(shù)據(jù)和定義好的需要訪問權限的路由表進行對比,
(在設置路由的組件中設置name和獲取的權限列表中的路由一樣),
生成當前賬戶對應的權限路由表,
通過addRoutes方法動態(tài)添加路由規(guī)則,
就可以生成可訪問的側邊欄菜單