第十七天Web前端面試題

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é)點

移除節(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ī)則,

就可以生成可訪問的側邊欄菜單

9,為什么要離職?

10,你要求15k,我們公司給不了你那么多,你該怎么答?

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 【轉載】CSDN - 張林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牘閱讀 3,593評論 1 14
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,675評論 1 32
  • 面試題一:https://github.com/jimuyouyou/node-interview-questio...
    R_X閱讀 1,776評論 0 5
  • 包含的重點內(nèi)容:JAVA基礎JVM 知識開源框架知識操作系統(tǒng)多線程TCP 與 HTTP架構設計與分布式算法數(shù)據(jù)庫知...
    消失er閱讀 4,558評論 1 10
  • 本文旨在加深對前端知識點的理解,資料來源于網(wǎng)絡,由本人(博客:http://segmentfault.com/u/...
    風起云帆閱讀 358評論 0 0

友情鏈接更多精彩內(nèi)容