天天看點

前端面試題-JS篇05

61、浏覽器标準模式和怪異模式之間的差別是什麼?

标準模式是指,浏覽器按 W3C 标準解析執行代碼; 怪異模式則是使用浏覽器自己的方式解析執行代碼,因為不同浏覽器解析執行的方式不一 樣,是以我們稱之為怪異模式。

浏覽器解析時到底使用标準模式還是怪異模式,與你網頁中的 DTD 聲明直接相關,DTD 聲明定義了标準文檔的類型(标準模式解析)文檔類型,會使浏覽器使用相應的方式加載網頁 并顯示,忽略 DTD 聲明,将使網頁進入怪異模式

62、HTTP 協定中,GET 和 POST 有什麼差別?分别适用什麼場 景?

get 傳送的資料長度有限制,post 沒有

get 通過 url 傳遞,在浏覽器位址欄可見,post 是在封包中傳遞

适用場景:

post 一般用于表單送出

get 一般用于簡單的資料查詢,嚴格要求不是那麼高的場景

63、HTTP 狀态消息 200 302 304 403 404 500 分别表示什麼

200:請求已成功,請求所希望的響應頭或資料體将随此響應傳回。

302:請求的資源臨時從不同的 URI 響應請求。由于這樣的重定向是臨時的,用戶端應當 繼續向原有位址發送以後的請求。隻有在 Cache-Control 或 Expires 中進行了指定的情況下, 這個響應才是可緩存的

304:如果用戶端發送了一個帶條件的 GET 請求且該請求已被允許,而文檔的内容(自上 次通路以來或者根據請求的條件)并沒有改變,則伺服器應當傳回這個狀态碼。304 響應禁 止包含消息體,是以始終以消息頭後的第一個空行結尾。

403:伺服器已經了解請求,但是拒絕執行它。

404:請求失敗,請求所希望得到的資源未被在伺服器上發現。

500:伺服器遇到了一個未曾預料的狀況,導緻了它無法完成對請求的處理。一般來說,這 個問題都會在伺服器端的源代碼出現錯誤時出現

64、HTTP 協 議 中 , header 信 息 裡 面 ,怎 麼 控 制 頁 面 失 效 時 間 (last-modified,cache-control,Expires 分别代表什麼)

Last-Modified 文檔的最後改動時間。客戶可以通過 If-Modified-Since 請求頭提供一個日期,該請求将被視為一個條件 GET,隻有改動時間遲于指定時間的文檔才會傳回,否則傳回一個 304(Not Modified) 狀态。Last-Modified 也可用 setDateHeader 方法來設定。

Expires 應該在什麼時候認為文檔已經過期,進而不再緩存它?

65、HTTP 協定目前常用的有哪幾個?KEEPALIVE 從哪個版本開始出現的?

http1.0

http1.1 keeplive

66、列舉常用的 web 頁面開發,調試以及優化工具

sublime vscode webstorm hbuilder dw

httpwatch=>ie ff:firebug

chrome:

67、解釋什麼是 sql 注入,xss 漏洞

所謂SQL注入,就是通過把SQL指令插入到Web表單送出或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL指令。

而XSS漏洞,就是跨站腳本攻擊,是一種在web應用中的計算機安全漏洞,它允許惡意web使用者将代碼植入到提供給其它使用者使用的頁面中。

68、如何判斷一個 js 變量是數組類型

ES5:Array.isArray()

[] instanceof Array

Object.prototype.toString.call([]);//"[object Array]"

69、請列舉 js 數組類型中的常用方法

concat() 連接配接兩個或更多的數組,并傳回結果。

join() 把數組的所有元素放入一個字元串。元素通過指定的分隔符進行分隔。

pop() 删除并傳回數組的最後一個元素

push() 向數組的末尾添加一個或更多元素,并傳回新的長度。

reverse() 颠倒數組中元素的順序。

shift() 删除并傳回數組的第一個元素

slice() 從某個已有的數組傳回標明的元素

sort() 對數組的元素進行排序

splice() 删除元素,并向數組添加新元素。

toSource() 傳回該對象的源代碼。

toString() 把數組轉換為字元串,并傳回結果。

toLocaleString() 把數組轉換為本地數組,并傳回結果。

unshift() 向數組的開頭添加一個或更多元素,并傳回新的長度。

valueOf() 傳回數組對象的原始值

70、FF(火狐) 與 IE 中如何阻止事件冒泡,如何擷取事件對象,以及如何擷取觸發事件的元素

阻止事件冒泡

FF event.stopPropagation

IE event.cancelBubble=true

擷取事件對象

FF event

IE window.event

擷取觸發事件的元素

FF event.target

IE event.srcElement

71、列舉常用的 js 架構以及分别适用的領域

jquery:簡化了 js 的一些操作,并且提供了一些非常好用的 API

jquery ui、jquery-easyui:在 jqeury 的基礎上提供了一些常用的元件 日期,下拉框,表格 這些元件

require.js、sea.js(阿裡的玉帛)+》子產品化開發使用的

zepto:精簡版的 jquery,常用于手機 web 前端開發 提供了一些手機頁面實用功能,touch

ext.js:跟 jquery 差不多,但是不開源,也沒有 jquery 輕量

angular、knockoutjs、avalon(去哪兒前端總監):MV*架構,适合用于單頁應用開發(SPA)

72、jQuery 架構中$.ajax()的常用參數有哪些?

type

類型:String

預設值: (“GET”)。請求方式 (“POST” 或 “GET”), 預設為 “GET”。注意:其它 HTTP 請求

方法,如 PUT 和 DELETE 也可以使用,但僅部分浏覽器支援。

url

類型:String

預設值: 目前頁位址。發送請求的位址。

success

類型:Function

請求成功後的回調函數。

參數:由伺服器傳回,并根據 dataType 參數進行處理後的資料;描述狀态的字元串。

這是一個 Ajax 事件。

options

類型:Object

可選。AJAX 請求設定。所有選項都是可選的。 async

類型:Boolean

預設值: true。預設設定下,所有請求均為異步請求。如果需要發送同步請求,請将此選項設定 為 false。

注意,同步請求将鎖住浏覽器,使用者其它操作必須等待請求完成才可以執行。

beforeSend(XHR)

類型:Function

發送請求前可修改 XMLHttpRequest 對象的函數,如添加自定義 HTTP 頭。 XMLHttpRequest 對象是唯一的參數。

這是一個 Ajax 事件。如果傳回 false 可以取消本次 ajax 請求。

cache

類型:Boolean

預設值: true,dataType 為 script 和 jsonp 時預設為 false。設定為 false 将不緩存此頁面。

jQuery 1.2 新功能。

contentType

類型:String

預設值: “application/x-www-form-urlencoded”。發送資訊至伺服器時内容編碼類型。

預設值适合大多數情況。如果你明确地傳遞了一個 content-type 給 $.ajax() 那麼它必定會發 送給伺服器(即使沒有資料要發送)。

data

類型:String

發送到伺服器的資料。将自動轉換為請求字元串格式。GET 請求中将附加在 URL 後。檢視 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 将 自動為不同值對應同一個名稱。如 {foo:[“bar1”, “bar2”]} 轉換為 ‘&foo=bar1&foo=bar2’。

dataFilter

類型:Function

給Ajax 傳回的原始資料的進行預處理的函數。提供 data 和 type 兩個參數:data 是 Ajax 傳回的原始資料,type 是調用 jQuery.ajax 時提供的 dataType 參數。函數傳回的值将由 jQuery 進一步處理。

dataType

類型:String

預期伺服器傳回的資料類型。如果不指定,jQuery 将自動根據 HTTP 包 MIME 資訊來智能判 斷,比如 XML MIME 類型就被識别為 XML。在 1.4 中,JSON 就會生成一個 JavaScript 對 象,而 script 則會執行這個腳本。随後伺服器端傳回的資料會根據這個值解析後,傳遞給回調 函數。可用值:

 “xml”: 傳回 XML 文檔,可用 jQuery 處理。

 “html”: 傳回純文字 HTML 資訊;包含的 script 标簽會在插入 dom 時執行。

 “script”: 傳回純文字 JavaScript 代碼。不會自動緩存結果。除非設定了 “cache” 參數。 注意:在遠端請求時(不在同一個域下),所有 POST 請求都将轉為 GET 請求。(因為将 使用 DOM 的 script 标簽來加載)

 “json”: 傳回 JSON 資料 。

 “jsonp”: JSONP 格式。使用 JSONP 形式調用函數時,如 “myurl?callback=?” jQuery 将自動替換 ? 為正确的函數名,以執行回調函數。

 “text”: 傳回純文字字元串 error 類型:Function 預設值: 自動判斷 (xml 或 html)。請求失敗時調用此函數。 有以下三個參數:XMLHttpRequest 對象、錯誤資訊、(可選)捕獲的異常對象。 如果發生了錯誤,錯誤資訊(第二個參數)除了得到 null 之外,還可能是 “timeout”, “error”, “notmodified” 和 “parsererror”。 這是一個 Ajax 事件。

繼續閱讀