前端面試題

1.DOM 和BOM 操做: BOM是瀏覽器對象模型,用來獲取或設置瀏覽器的屬性、行爲,例如:新建窗口、獲取屏幕分辨率、瀏覽器版本號等。 DOM是文檔對象模型,用來獲取或設置文檔中標籤的屬性,例如獲取或者設置input表單的value值。css

2.解決和改善 IE、Chrome 等主流瀏覽器的兼容性問題: webpack能夠處理瀏覽器js兼容性問題,把低級瀏覽器不能識別的高級語法轉化成低級語法 瀏 覽 器 默 認 的 margin 和 padding 不 同 。 解 決 方 案 是 加 一 個 全 局 的 *{margin:0;padding:0;}來統一。 *IE6 雙邊距 bug:塊屬性標籤 float 後,又有橫行的 margin 狀況下,在 ie6 顯示margin 比設置的大。 各類特殊樣式的兼容,好比透明度、圓角、陰影等。特殊樣式每一個瀏覽器的代碼區別很大,因此,只能現查資料經過給不一樣瀏覽器寫不一樣的代碼來解決。 浮動 ie 產生的雙倍距離 #box{ float:left; width:10px; margin:0 0 0 100px;} 這種狀況之下 IE會產生 20px的距離,解決方案是在 float的標籤樣式控制中加入 — —_display:inline;將其轉化爲行內屬性。(_這個符號只有 ie6會識別) 漸進識別的方式,從整體中逐漸排除局部。html

3.響應式佈局及彈性佈局:響應式佈局設計方法:媒體查詢+流式佈局,彈性佈局:使用 em 或 rem 單位進行相對佈局。前端

4.es6:模塊、類、let與const、箭頭函數、字符串模版、解構等。vue

5.less和sass動態樣式語言. 對CSS賦予了動態語言的特性,如變量、繼承、運算、函數。html5

6.jsonp:簡單的說,就是利用script標籤沒有跨域限制的「漏洞」來達到與第三方通信的目的。總結一下,json 是一種數據格式,jsonp 是一種數據調用的方式,帶callback的json就是 jsonpwebpack

7.csss3,html5新特性:用於繪畫的 canvas 元素,媒介回放的 video 和 audio 元素,css3: CSS3實現圓角(border-radius),陰影(box-shadow), transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);css3

8.圖片懶加載:對於圖片過多的頁面會嚴重影響網頁的加載速度,圖片懶加載就是當頁面被請求時,只加載可視區域的圖片,其它部分的圖片則不加載,只有這些圖片出如今可視區域時纔會動態加載這些圖片nginx

9.http傳輸的數據都是未加密的,也就是明文的,網景公司設置了SSL協議來對http協議傳輸的數據進行加密處理,簡單來講https協議是由http和ssl協議構建的可進行加密傳輸和身份認證的程序員

10.Cookie、sessionStorage、localStorage的區別: 共同點:都是保存在瀏覽器端,而且是同源的es6

Cookie:客戶端首次請求,服務器會建立併發送一個cookie,客戶端把它保存在本地,cookie數據始終在同源的http請求中攜帶,即cookie在瀏覽器和服務器間來回傳遞。

session:服務端檢測客戶端請求是否包含一個sessionID若是有就根據此id檢索出session若是沒有建立,併發送給客戶端(客戶端用cookie保存)。

而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。 11.this的指向:實際上this的最終指向的是那個調用它的對象

12.ajax:先建立xhr異步對象(xmlhttprequest),而後鏈接服務器向服務器發送請求,接受服務器的返回

vue相關

1.如何理解vue中MVVM模式? 就是雙向數據綁定,它能夠實現頁面隨數據實時更新 2.組件之間的傳值通訊? 父組件向子組件傳值:
1)子組件在props中建立一個屬性,定義這個值得類型,用來接收父組件傳過來的值;

2)在父組件中導入並註冊子組件;

3)在子組件標籤中添加子組件props中建立的屬性名,並把須要傳給子組件的值賦給該屬性;
複製代碼
1.在子組件中建立點擊事件綁定方法,在方法中用this.$emit觸發一個自定義事件,並傳遞一個參數
2.在父組件的子組件標籤中監聽這個事件並綁定一個響應這個事件的方法
複製代碼

3.v-show和v-if指令的共同點和不一樣點?

v-show指令是經過修改元素的displayCSS屬性讓其顯示或者隱藏 v-if指令是直接銷燬和重建DOM達到讓元素顯示和隱藏的效果 4.列舉出3個Vue中經常使用的生命週期鉤子函數? created:實例建立完成以後調用 mounted:完成掛載以後 第一次頁面加載時會觸發 beforeCreate, created, beforeMount, mounted 這幾個鉤子

5.爲何須要vuex?

當你打算開發大型單頁應用,會出現多個視圖組件依賴同一個狀態,來自不一樣視圖的行爲須要變動同一個狀態。

6.閉包優勢:局部變量不釋放

7.閉包缺點:內存泄漏、內存佔用

8.爲何要用它?

就是爲了防止變量污染,可是用多了會內存泄漏
複製代碼

mongodb菲關係型數據庫

9.vue-router的兩種模式的區別? hash:vue的默認模式不刷新頁面,history刷新頁面

10.宏任務包含:setTimeout/setInterval/setImmediate/總體代碼script 而微任務包含:promise和process.nextTick 當同步任務完成,在執行宏任務前會先執行完微任務在執行宏任務 11.APP微信登陸調用微信開發平臺的jssdk 12.es5:DOM(文檔對象模型)

DOM把整個頁面映射爲一個多層節點結果,開發人員可藉助DOM提供的API,輕鬆地刪除、添加、替換或修改任何節點。 BOM (瀏覽器對象模型)

支持能夠訪問和操做瀏覽器窗口的瀏覽器對象模型,開發人員能夠控制瀏覽器顯示的頁面之外的部分。

PS:BOM未造成規範

Array增長方法

增長了every、some 、forEach、filter 、indexOf、lastIndexOf、isArray、map、reduce、reduceRight方法

Object方法 Object.getPrototypeOf Object.create Object.getOwnPropertyNames Object.defineProperty Object.getOwnPropertyDescriptor Object.defineProperties Object.keys

ES6特性以下:

1.塊級做用域 關鍵字let, 常量const 2..賦值解構 3..箭頭函數 Arrow functions 4.Class,有constructor、extends、super,但本質上是語法糖(對語言的功能並無影響,可是更方便程序員使用) 5.Modules 6.Map + Set + WeakMap + WeakSet 7.Promises是處理異步操做的對象,使用了Promise對象以後能夠用一種鏈式調用的方式來組織代碼,讓代碼更加直觀(相似jQuery的deferred 對象)。

9.重匯和迴流 reflow:當render樹中的一部分或者所有由於大小邊距等問題發生改變而須要重建的過程叫作迴流

repaint:當元素的一部分屬性發生變化,如外觀背景色不會引發佈局變化而須要從新渲染的過程叫作重繪

先後分離

前端跨域

jsonp,cros,nginx代理跨域
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息