前端ajax面試題及答案

來源:果殼範文吧 3.25W

導語:參加前端ajax面試求職者們,前端ajax面試題及答案哪裡有呢?以下是小編為大家整理的文章,歡迎閱讀!希望對大家有所幫助!

前端ajax面試題及答案

  1.你能描述一下漸進增強和優雅降級之間的不同嗎?

優雅降級:Web站點在所有新式瀏覽器中都能正常工作,如果使用者使用的是老式瀏覽器,則程式碼會檢查以確認它們是否能正常工作。由於IE獨特的盒模型佈局問題,針對不同版本的IE的hack實踐過優雅降級了,為那些無法支援功能的瀏覽器增加候選方案,使之在舊式瀏覽器上以某種形式降級體驗卻不至於完全失效.

漸進增強:從被所有瀏覽器支援的基本功能開始,逐步地新增那些只有新式瀏覽器才支援的功能,向頁面增加無害於基礎瀏覽器的額外樣式和功能的。當瀏覽器支援時,它們會自動地呈現出來併發揮作用。

  2.執行緒與程序的區別?

一個程式至少有一個程序,一個程序至少有一個執行緒。執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。

另外,程序在執行過程中擁有獨立的`記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。

執行緒在執行過程中與程序還是有區別的。每個獨立的執行緒有一個程式執行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

從邏輯角度來看,多執行緒的意義在於一個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現程序的排程和管理以及資源分配。這就是程序和執行緒的重要區別。

  3.說說你對語義化的理解?

1:去掉或樣式丟失的時候能讓頁面呈現清晰的結構:html本身是沒有表現的,我們看到例如

是粗體,字型大小2em,加粗;是加粗的,不要認為這是html的表現,這些其實html預設的css樣式在起作用,所以去掉或樣式丟失的時候能讓頁面呈現清晰的結構不是語義化的HTML結構的優點,但是瀏覽器都有有預設樣式,預設樣式的目的也是為了更好的表達html的語義,可以說瀏覽器的預設樣式和語義化的HTML結構是不可分割的。

2:螢幕閱讀器(如果訪客有視障)會完全根據你的標記來“讀”你的網頁。

3:PDA、手機等裝置可能無法像普通電腦的瀏覽器一樣來渲染網頁(通常是因為這些裝置對CSS的支援較弱)。

4:有利於SEO:和搜尋引擎建立良好溝通,有助於爬蟲抓取更多的有效資訊:爬蟲依賴於標籤來確定上下文和各個關鍵字的權重。

6:便於團隊開發和維護,語義化更具可讀性,是下一步吧網頁的重要動向,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。

  4.你如何對網站的檔案和資源進行優化?

期待的解決方案包括:檔案合併檔案最小化/檔案壓縮使用CDN託管快取的使用(多個域名來提供快取)其他。

  5.為什麼利用多個域名來提供網站資源會更有效?

1.CDN快取更方便

2.突破瀏覽器併發限制(一般每個域名建立的連結不超過6個)

3.Cookieless,節省頻寬,尤其是上行頻寬一般比下行要慢

4.對於UGC的內容和主站隔離,防止不必要的安全問題(上傳js竊取主站cookie之類的)。正是這個原因要求使用者內容的域名必須不是自己主站的子域名,而是一個完全獨立的第三方域名。

5.資料做了劃分,甚至切到了不同的物理叢集,通過子域名來分流比較省事。這個可能被用的不多。

PS:關於Cookie的問題,頻寬是次要的,安全隔離才是主要的。關於多域名,也不是越多越好,雖然伺服器端可以做泛解釋,瀏覽器做dns解釋也是耗時間的,而且太多域名,如果要走https的話,還有要多買證書和部署的問題。

  6.請說出三種減少頁面載入時間的方法。(載入時間指感知的時間或者實際載入時間)

1)優化圖片

2)影象格式的選擇(GIF:提供的顏色較少,可用在一些對顏色要求不高的地方)

3)優化CSS(壓縮合並css,如margin-top,margin-left...)

4)網址後加斜槓(如目錄,會判斷這個“目錄是什麼檔案型別,或者是目錄。)

5)標明高度和寬度(如果瀏覽器沒有找到這兩個引數,它需要一邊下載圖片一邊計算大小,如果圖片很多,瀏覽器需要不斷地調整頁面。這不但影響速度,也影響瀏覽體驗。當瀏覽器知道了高度和寬度引數後,即使圖片暫時無法顯示,頁面上也會騰出圖片的空位,然後繼續載入後面的內容。從而載入時間快了,瀏覽體驗也更好了。)

6)減少http請求(合併檔案,合併圖片)。

  7.如果你參與到一個專案中,發現他們使用Tab來縮排程式碼,但是你喜歡空格,你會怎麼做?

1)建議這個專案使用像EditorConfig()之類的規範

2)為了保持一致性,接受專案原有的風格

3)直接使用VIM的retab命令

  8.請寫一個簡單的幻燈效果頁面

如果不使用JS來完成,可以加分。(如:純CSS實現的幻燈片效果)

  9.你都使用哪些工具來測試程式碼的效能?

Profiler,JSPerf(),Dromaeo。

  10.如果今年你打算熟練掌握一項新技術,那會是什麼?

nodejs,html5,css3,less等。

熱門標籤