介紹
3,4月份暑期實習招聘~準備了許久,看了網上不少的總結帖子,準備過程中,學習到了許多。
看過一句話~
技術水平漲的最快的有兩個階段,一個面試前幾個月,一個是入職後幾個月~想想還是很有道理的。
拿到offer了~把自己複習時做的一些總結,給大家分享一下,希望能夠對大家有些幫助~
CSS部分
常問問題:
1. 兩種盒模型
2. 選擇器優先級計算
3. 有哪些僞類
4. 純css實現對話框帶上小三角形
5. 輪播圖 js css
6. 媒體查詢
7. 清楚浮動方式
8. 完全置中
JavaScript部分
- 什麼是閉包?
閉包是指有權訪問另一個函數作用域重點變量的函數。創建閉包的常見方式,就是在一個函數內部創建另外一
個函數。因爲內部匿名函數的作用域鏈(一個棧結構)指向2:全局變量對象,1:包含函數變量對象,0:自己
的變量對象。所以雖然隨着包含函數的執行結束,包含函數的作用域鏈銷燬了,但是因爲任然有函數的作用域
鏈指向包含函數的變量對象,所以不會觸發回收機制。 - JS如何實現類,繼承?
通過prototype,Javascript 解析引擎在讀取一個Object的屬性的值時,會沿着prototype向上尋找,
如果最終沒有找到,則該屬性值爲Undefined
; 如果最終找到該屬性的值,則返回結果。與這個過程不同的是,
當javascript解析引擎執行“給一個Object的某個屬性賦值”的時候,如果當前Object存在該屬性,則改寫該屬性的值,
如果當前的Object本身並不存在該屬性,則賦值該屬性的值。 - 什麼是冒泡和捕獲?
事件流描述的是從頁面中接收事件的順序。IE的事件流是事件冒泡流,Netscape的事件流是事件捕獲流。
事件冒泡流:嵌套最深的結點最先接收事件。
事件捕獲流:document對象最先接收事件。 - JS有哪些數據類型?
boolean,null,Number,string,Undefined這5個基本數據類型,另外有一個複雜數據類型object(本質上由一組無序的名值對組成) - Null和Undefined的區別?
聲明但未加初始化的則爲Undefined,而null則表示一個空對象指針。但是兩者用==
返回爲true - isNaN()的作用?
isNaN() 函數通常用於檢測 parseFloat() 和 parseInt() 的結果,以判斷它們表示的是否是合法的數字。當然也可以用 isNaN() 函數來檢測算數錯誤,比如用 0 作除數的情況。 JS對象中的Array對象和String對象的各種方法
this關鍵字在不同環境下的指向
5種情況下的this指向- JS的作用域
作用域和命名空間 - setTimeout和setInterval
(setTimeout和setInterval的區別你真的瞭解嗎?)[http://www.jb51.net/article/26679.htm] - js有哪些基本對象
JavaScript對象:Array,Boolean,Date,Math,Number,String,RegExp,Functions,Events
browser對象:Window,Navigator,Screen,History,Location
html對象:Document,Element,Attribute,Event - call、apply、callee 孰知應用
js apply詳解
javascript中callee與caller的用法和應用場景 - 跨域實現方法
詳解js跨域問題 - 事件監聽、回調、發佈訂閱模式、promise實現
javascript實現異步的四種方法
設計模式之觀察者模式 - AMD CMD 模塊化JS
javascript模塊化編程 - 內存泄露的原因和場景。
深入淺出JavaScript內存泄露
javascript內存泄露的幾種情況 - 如何判斷js類型
JavaScript中判斷對象類型的種種方法 - 按值傳遞和按引用傳遞
JavaScript中值的訪問與參數傳遞問題 - 重排和重繪
瀏覽器渲染頁面的過程,以及重繪和重排 - 嚴格模式
是時候使用JavaScript嚴謹模式(Strict Mode)提升團隊開發效率 - 簡述document.write和 innerHTML的區別。
document.write只能重繪整個頁面,
innerHTML可以重繪頁面的一部分。 - extend
extend 方法在js框架中的設計
相關知識
IE與firefox,chrome等瀏覽器的差別
事件:
ie:attachEvent, window.event,window.event.srcElement
chrome:addEventListener, event;event.target
其他:
- firefox不支持innerText,但是支持一個相似的textContent
- ie不支持getComputedStyle()這個方法,他支持currentStyle這個屬性
- 盒模型不同
- 瀏覽器默認樣式不同,利用*{margin:0,padding:0},統一
性能優化的方法
前端工程與性能優化
前端優化的手段都有哪些?
毫秒必爭,前端網頁性能最佳實踐
服務器層面:
cdn,前後端不同域名(減少cookie),gzip壓縮文件,合併文件,雪碧圖,304緩存,壓縮代碼,移除重複腳本,圖像優化;
通過Keep-alive機制減少TCP連接。
避免跳轉 跳轉是使用301和302代碼實現的
代碼層面:
將樣式表放在頂部,將腳本放在底部,儘早刷新文檔的輸出;
減少重排和重繪,利用DocumentFragments,同時更改樣式時儘量通過更改className可減少reflow,
減少dom數量;
事件代理,
減少dom的訪問次數,如果需要多次訪問某個DOM節點,請使用局部變量存儲對它的引用。
重構HTML,把重要內容的優先級提高(聖盃佈局)。
利用預加載優化資源。
利用LocalStorage合理緩存資源。
利用媒體查詢請求不同大小的圖片
http狀態碼
1XX表示請求接受成功,待進一步處理
2XX表示訪問成功
3XX 訪問重定向
4XX 客戶端請求錯誤,包括語法、文件路徑
5XX 服務器出現錯誤
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報 //頭域一起使用
403 Forbidden //服務器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後,可能恢復正常