霸面的是前端實習生崗位,當時聽同窗說前端缺人,還特地設了一個霸面區,就去溜了個彎兒,畢竟不試試,怎麼知道本身有多菜呢o( ̄︶ ̄)o
一面技術面,面試官關注的點一直在數據結構、算法、計算機網絡這些點,關於框架也有問,但較少,並且直接問原理。下面是把面試官問的問題作個總結,以便之後查漏補缺css
數據結構中的排序一直是一個繞不過去的點,面試官的第一道題就是讓用js寫快排,然鵝,我並無複習快排ε(┬┬﹏┬┬)3,寫不出來以後面試官就讓講一下快排的原理。
快排原理:html
王道上對快排的解釋是:在待排序表L[1·····n]中任取一個元素pivot做爲基準,經過一趟排序姜待排序表劃分爲獨立的兩部分L[1···k]和L[k+1···n],使得L[1···k]中全部元素小於pivot,L[k+1···n]中全部元素大於pivot,則pivot放在了其最終位置L(k)上,這個過程稱做一趟快速排序。然後分別地櫃的對兩個子表重複上述過程,直至每部份內只有一個元素或空爲止,即全部元素放在了其最終位置上。
算法實現:前端
var arr=[1,54,27,93,100,45,98] function qsort(a,l,r){ var x=a[l],i=l,j=r if(i>=j) return x while(i<j){ while(i<j&&x<=a[j];j--); a[i]=a[j] while(i<j&&a[i]<=x;i++); a[j]=a[i] } a[i]=x qsort(a,l,i-1) qsort(a,i+1,r) } qsort(arr,0,6) alert(arr)
這個代碼運行不成功,待修改;
幾種內排序的算法實現,時間複雜度都須要掌握vue
這是面試的最後一道題,算是拿個算法題來壓軸。從25匹馬中選出5匹最快的馬,只有五個賽道,求最少的次數(沒有秒錶計時)
這個題當時沒想出來,後來面試結束,在網上找到一個如出一轍的題,步驟這裏就不寫了,詳情請移步點我點我ios
網絡裏的知識考的比較多一些,有http和https,ip協議,DNS,url面試
http和https有什麼區別?
回答說https更安全以後,面試官接着問,問什麼更安全
HTTP協議傳輸的數據都是未加密的,也就是明文的,所以使用HTTP協議傳輸隱私信息很是不安全,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。ajax
HTTPS和HTTP的區別主要以下:算法
一、https協議須要到ca申請證書,通常免費證書較少,於是須要必定費用。
二、http是超文本傳輸協議,信息是明文傳輸,https則是具備安全性的ssl加密傳輸協議。
三、http和https使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。
四、http的鏈接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。數據庫
客戶端在使用HTTPS方式與Web服務器通訊時有如下幾個步驟,如圖所示。
(1)客戶使用https的URL訪問Web服務器,要求與Web服務器創建SSL鏈接。
(2)Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。
(3)客戶端的瀏覽器與Web服務器開始協商SSL鏈接的安全等級,也就是信息加密的等級。
(4)客戶端的瀏覽器根據雙方贊成的安全等級,創建會話密鑰,而後利用網站的公鑰將會話密鑰加密,並傳送給網站。
(5)Web服務器利用本身的私鑰解密出會話密鑰。
(6)Web服務器利用會話密鑰加密與客戶端之間的通訊。
axios
若是須要將網站從http切換到https到底該如何實現呢?
這裏須要將頁面中全部的連接,例如js,css,圖片等等連接都由http改成https。例如:http://www.baidu.com改成https://www.baidu.com
BTW,這裏雖然將http切換爲了https,仍是建議保留http。因此咱們在切換的時候能夠作http和https的兼容,具體實現方式是,去掉頁面連接中的http頭部,這樣能夠自動匹配http頭和https頭。例如:將http://www.baidu.com改成//www...。而後當用戶從http的入口進入訪問頁面時,頁面就是http,若是用戶是從https的入口進入訪問頁面,頁面即便https的。
ip協議的做用是什麼,dns是什麼,屬於七層中的哪一層
巴拉巴拉說了一點,可能說的不太對,面試官就沒在接着問,據別的同窗說,面試官接着問她:域名解析存儲在哪裏,服務器,在服務器的哪裏???鬼知道
IP 地址是咱們進行TCP/IP通信的基礎,IP地址是一個32位二進制數的地址, 由4個8位字段組成,每一個字段之間用點號隔開,用於標識TCP/IP宿主機。每一個IP地址都包含兩部分:網絡ID和主機ID。網絡ID標識在同一個物理網絡上的全部宿主機,主機ID 標識該物理網絡上的每個宿主機,因而整個Internet上的每一個計算機都依靠各自惟一的IP地址來標識。
IP地址的格式爲: IP地址 = 網絡地址 + 主機地址 或者 IP地址=主機地址 + 子網地址 + 主機地址。一個簡單的IP地址其實包含了網絡地址和主機地址兩部分重要的信息。
IP地址必須和一個網絡掩碼(Net Mask)對應使用, 缺一不可。網絡掩碼的主要做用是告訴計算機如何從IP地址中析取網絡標識和主機標識。其實現是經過設置掩碼來將本來屬於主機ID的位(bit)借用給網絡ID, 從而起到減小主機數量的做用。當經過設置掩碼從主機ID來借用位(bit)時, 至少要留下2個位(bit)來作主機ID。由於只留一個位的狀況下,全0和全1都沒有意義.
在TCP/IP協議棧的實現中設定了許多的規則,其中有一條就是, 兩臺聯網的主機想直接通信的話,必須有相同的網絡標識和不一樣的主機標識。具備不一樣的網絡標識的兩臺主機要想通信的話必須經過一臺中間設備 - 路由器的轉發才能實現。
對於大多數撥號上網的用戶,因爲其上網時間和空間的離散性,爲每一個用戶分配一個固定的IP地址(靜態I P)是很是不可取的,這將形成IP地址資源的極大浪費。所以這些用戶一般會在每次撥通ISP的主機後,自動得到一個動態的IP地址,該地址固然不是任意的,而是該ISP申請的網絡ID和主機ID的合法區間中的某個地址。撥號用戶任意兩次鏈接時的IP地址極可能不一樣,可是在每次鏈接時間內IP地址不變。
DNS( Domain Name System)是「域名系統」的英文縮寫,它用於TCP/IP網絡,它所提供的服務是用來將主機名和域名轉換爲IP地址的工做。
至於同同窗說的解析存儲在哪裏,我猜是問如何查詢的過程:
一、在瀏覽器中輸入www . qq .com 域名,操做系統會先檢查本身本地的hosts文件是否有這個網址映射關係,若是有,就先調用這個IP地址映射,完成域名解析。
二、若是hosts裏沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網址映射關係,若是有,直接返回,完成域名解析。
三、若是hosts與本地DNS解析器緩存都沒有相應的網址映射關係,首先會找TCP/ip參數中設置的首選DNS服務器,在此咱們叫它本地DNS服務器,此服務器收到查詢時,若是要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具備權威性。
四、若是要查詢的域名,不禁本地DNS服務器區域解析,但該服務器已緩存了此網址映射關係,則調用這個IP地址映射,完成域名解析,此解析不具備權威性。
五、若是本地DNS服務器本地區域文件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,若是未用轉發模式,本地DNS就把請求發至13臺根DNS,根DNS服務器收到請求後會判斷這個域名(.com)是誰來受權管理,並會返回一個負責該頂級域名服務器的一個IP。本地DNS服務器收到IP信息後,將會聯繫負責.com域的這臺服務器。這臺負責.com域的服務器收到請求後,若是本身沒法解析,它就會找一個管理.com域的下一級DNS服務器地址(http://qq.com)給本地DNS服務器。當本地DNS服務器收到這個地址後,就會找http://qq.com域服務器,重複上面的動做,進行查詢,直至找到www . qq .com主機。
六、若是用的是轉發模式,此DNS服務器就會把請求轉發至上一級DNS服務器,由上一級服務器進行解析,上一級服務器若是不能解析,或找根DNS或把轉請求轉至上上級,以此循環。無論是本地DNS服務器用是是轉發,仍是根提示,最後都是把結果返回給本地DNS服務器,由此DNS服務器再返回給客戶機。
ip屬於網絡層,dns屬於應用層,附圖一張:
參見ipipipipip dns dns dns dns dns
寫一個帶?和#的url
港真,我不知道?和#是什麼意思。如今想一想昨天跟面試官胡鄒了一下就以爲好尬
#表明網頁中的一個位置,好比,http://www.XXX.com/index.html...。
?是帶的參數。好比 http://www.cnallshop.com/sch?...,參數是?後面的id=1,網站的程序會根據此參數查詢數據庫。
參見#表示頁面定位
關於框架,只問了一個問題,果真大廠都重基礎,首先
讀過vue源碼嗎?
gg,沒有,
說一下vue實現雙向綁定的原理是什麼
原理原理,一臉懵逼。。。
連接描述這個文章寫的真好,挖坑,今天沒空了,明天總結一下
還問了一個問題,和後臺交互用的什麼,axios呀,那axios的原理是什麼?
阿西吧,除了axios還有什麼和後臺交互的方式?
一、 link標籤的href屬性
二、 script標籤的src屬性
三、 img標籤的src屬性
四、 ajax發送請求
五、 表單提交發送請求
六、 a標籤的href發送請求
七、 iframe的src屬性發送請求
先後端實現數據交互的方法點我