前端常見考試知識點筆記

原始類型:undefined與null的區別

Undefined類型只有一個值,即undefined。當聲明的變量還未被初始化時,變量的默認值爲undefined。
Null類型也只有一個值,即null。null用來表示尚未存在的對象,常用來表示函數企圖返回一個不存在的對象。

		var a;
		console.log(a) //  undefined
		console.log(null == document.getElementById('notExistElement')); // true

		console.log(null === undefined); // false 
		console.log(null == undefined);  // true

		console.log(typeof null == typeof undefined); // false 

== 與 ===

”==”與”===”是不同的,一個是判斷值是否相等,一個是判斷值及類型是否完全相等。

瀏覽器內核

一、Trident內核代表產品Internet Explorer,又稱其爲IE內核。Trident(又稱爲MSHTML),是微軟開發的一種排版引擎。使用Trident渲染引擎的瀏覽器包括:IE、傲遊、世界之窗瀏覽器、Avant、騰訊TT、Netscape 8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。 

二、Gecko內核代表作品Mozilla Firefox,Gecko是一套開放源代碼的、以C++編寫的網頁排版引擎。Gecko是最流行的排版引擎之一,僅次於Trident。使用它的最著名瀏覽器有Firefox、Netscape6至9。 

三、WebKit內核代表作品Safari、Chrome,webkit 是一個開源項目,包含了來自KDE項目和蘋果公司的一些組件,主要用於Mac OS系統,它的特點在於源碼結構清晰、渲染速度極快。缺點是對網頁代碼的兼容性不高,導致一些編寫不標準的網頁無法正常顯示。主要代表作品有Safari和Google的瀏覽器Chrome。 4

四、Presto內核代表作品OperaPresto是由Opera Software開發的瀏覽器排版引擎,供Opera 7.0及以上使用。它取代了舊版Opera 4至6版本使用的Elektra排版引擎,包括加入動態功能,例如網頁或其部分可隨着DOM及Script語法的事件而重新排版。

DHTML實現的功能

網頁從Web服務器下載後無需再經過服務的處理,而在瀏覽器中直接動態地更新網頁的內容、排版樣式和動畫的功能。例如,當鼠標指針移到文章段落中時,段落能夠變成藍色,或者當鼠標指針移到一個超級鏈接上時,會自動生成一個下拉式子鏈接目錄等。

包括:

    ①動態內容(Dynamic Content):動態地更新網頁內容,可“動態”地插入、修改或刪除網頁的元件,如文字、圖像、標記等。

    ②動態排版樣式(Dynamic Style Sheets):W3C的CSS樣式表提供了設定HTML標記的字體大小、字形、樣式、粗細、文字顏色、行高度、加底線或加中間橫線、縮排、與邊緣距離、靠左右或置中、背景圖片或顏色等排版功能,而“動態排版樣式”即可以“動態”地改變排版樣式。

JavaScript的全局函數

JavaScript 中包含以下 7 個全局函數,用於完成一些常用的功能(以後的章節中可能會用到):

escape( )、eval_r( )、isFinite( )、isNaN( )、parseFloat( )、parseInt( )、unescape( )。

關於promise的catch和.then

Promise構造器的prototype上還有兩個方法,分別是then和catch。這兩個方法的參數也是回調函數,這些函數會在Promise實例進入不同狀態後被調用。Then對應到resolve,catch對應到reject

關於http與https

http是超文本傳輸協議,是一個客戶端和服務器端的請求和應答的一種標準,基於tcp,http傳輸是明文的

HTTPS:HTTPS是基於http的基礎之上加了ssl層,是一種以安全爲目標的http的通道,需要sa認證,成本較高

http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

什麼是ssl?百度百科是這麼講的

HTTPS的工作原理

客戶端在使用HTTPS方式與Web服務器通信時有以下幾個步驟。

客戶使用https url訪問服務器,則要求web 服務器建立ssl鏈接。

web服務器接收到客戶端的請求之後,會將網站的證書(證書中包含了公鑰),返回或者說傳輸給客戶端。

客戶端和web服務器端開始協商SSL鏈接的安全等級,也就是加密等級。

客戶端瀏覽器通過雙方協商一致的安全等級,建立會話密鑰,然後通過網站的公鑰來加密會話密鑰,並傳送給網站。

web服務器通過自己的私鑰解密出會話密鑰。

web服務器通過會話密鑰加密與客戶端之間的通信。

HTTPS的優缺點

 

https協議的優點

使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器;

HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程中不被竊取、改變,確保數據的完整性。

HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

谷歌曾在2014年8月份調整搜索引擎算法,並稱“比起同等HTTP網站,採用HTTPS加密的網站在搜索結果中的排名將會更高”。

https協議的缺點

https握手階段比較費時,會使頁面加載時間延長50%,增加10%~20%的耗電。

https緩存不如http高效,會增加數據開銷。

SSL證書也需要錢,功能越強大的證書費用越高。

SSL證書需要綁定IP,不能再同一個ip上綁定多個域名,ipv4資源支持不了這種消耗。

什麼是三次握手

這是一個建立連接的過程。

1、客戶端c向服務器s發起請求,服務器端確認

2、服務器s端應答客戶端c,客戶端c確認

3、客戶端與服務器端建立鏈接,c可收到數據

TCP和UDP的區別

 TCP 是面向連接的可靠傳輸,在連接之前要先進性三次握手,確保連接雙方搭建的通路是正確的,並且傳輸的數據不丟失、不重複、按順序到達。1對1

UDP是面向無連接的不可靠傳輸,不需要進行建立通路,儘可能最大限度的努力傳輸,不保證數據的完成性,其速度較快,同時可以1對1,1對多

幾個很實用的BOM屬性對象方法?

Bom是瀏覽器對象。有三個對象location、history、Navigator

location:裏面有很多方法。一般是對URL的操作

location.href-- 返回或設置當前文檔的URL
location.search -- 返回URL中的查詢字符串部分。例如 http://www.dreamdu.com/dreamdu.php?id=5&name=dreamdu 返回包括(?)後面的內容?id=5&name=dreamdu
location.hash -- 返回URL#後面的內容,如果沒有#,返回空
location.host -- 返回URL中的域名部分,例如www.dreamdu.com
location.hostname -- 返回URL中的主域名部分,例如dreamdu.com
location.pathname -- 返回URL的域名後的部分。例如 http://www.dreamdu.com/xhtml/ 返回/xhtml/
location.port -- 返回URL中的端口部分。例如 http://www.dreamdu.com:8080/xhtml/ 返回8080
location.protocol -- 返回URL中的協議部分。例如 http://www.dreamdu.com:8080/xhtml/ 返回(//)前面的內容http:
location.assign -- 設置當前文檔的URL
location.replace() -- 設置當前文檔的URL,並且在history對象的地址列表中移除這個URL location.replace(url);
location.reload() -- 重載當前頁面

history: 有三個方法。記錄頁面

history.go() -- 前進或後退指定的頁面數 history.go(num);
history.back() -- 後退一頁
history.forward() -- 前進一頁

Navigator:一般是瀏覽器的一些信息

navigator.userAgent -- 返回用戶代理頭的字符串表示(就是包括瀏覽器版本信息等的字符串)
navigator.cookieEnabled -- 返回瀏覽器是否支持(啓用)cookie

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章