一、第一家
1.項目中負責哪些功能
2.js的基本數據類型,檢測數據類型
3.unfinde和null的區別
undefined表示變量聲明過但並未賦過值,null表示可能未來指向一個空對象,unfinde和null的值相等但是但是類型不等,要用全等來判斷不能用雙等
4.js中new操作符做了那事情
創建一個空對象,設置原型鏈,綁定this指向執行構造函數,返回這個對象。
5.瀏覽優化
5.1減少http請求:css精靈圖,防抖和節流
5.2使用CDN:cdn是一組分布在多個不同地理位置的web服務器,用於更加有效的向用戶發布內容,web服務器離用戶越近,http請求的響應意見越短
5.3壓縮代碼體積,樣式放在頭部,腳本放在底部
5.4減少DNS查找(DNS予解析)緩存
6.js延遲加載的方式
js延時加載,有利於提高網頁的加載速度,可以通過defer屬性、async屬性、動態的創建DOM、使用setTimeout延時方法、讓js最后加載
7.es中promis和異步的區別
8.es新增了let和const和var的區別
9.js閉包,js還有哪些操作會造成內泄露(不會),let和const出現后還有需要需要閉包。
10.解決跨域問題,jsonp的原理(不會)
jsonp的原理:利用script標簽的src屬性來實現跨域,通過將前端方法作為參數傳遞到服務器,然后有服務器注入參數之后再返回,實現服務器端向客戶端通訊,由於使用script標簽src屬性,之支持get請求
11.for in 和object.key的區別:object.key將對象中所有的key值取出來只讀取當前對象的key值不會走原型鏈,而for in會走原型鏈。forEach和map的區別,map得到一個新數組返回,forEadch方法沒有返回值,會改變原數組的值
12.原型鏈和作用域鏈的區別
13.普通函數的箭頭函數的區別
箭頭函數是匿名函數,不能作為構造函數,不能使用new關鍵字,沒有this機制,沒有原型屬性
14.vue的優點(答的不全)
雙向數據綁定,組件化,虛擬DOM
15.vue組件間傳值,
父向子,定義自定屬性props接收,子向父,定義自定義事件通過$emit觸發這個事件。
props父組件更新子組件中的數據是否會更新(不會),利用props傳參時只在mounted周期中傳遞了一次,此 可以利用計算屬性。
16.讓樣式vue只在當前組件中起作用
在組件中的style前面加上scoped就可以了,但是之一特性存在一個缺陷!如果再子組件的根元素上有一個類已經再這個父元素定義過了,那這個父組件的樣式就會泄露到子組件中,因此要避免再父組件中書寫和子組件同名的clss類
17.如果發多個請求,在第一請求發起把logind顯示出來,在最后一個返回時(每一個請求的時間都不確定)取消他
解決方案一、可以定義一個變量變量數等於請求的數量,再每一個變量里讓他減減,當變量等於0的時候讓他消失。
解決方案二、利用Promise有一個all方法,接收一參數,這個參數可以傳入一個數組,再數組中可以寫多個Promise抱起來,然后放到個數組里,all方法石凳數組中所有的Promise加載完成之后才去執行的
console.log('loading效果圖旋轉中') var p1 = new Promise(function(resolve,reject){ setTimeout(() => { console.log('第一個加載完成了'); resolve(); }, 1000); }) var p2 = new Promise(function(resolve,reject){ setTimeout(() => { console.log('第三個加載完成了'); resolve(); }, 2000); }) var p3 = new Promise(function(resolve,reject){ setTimeout(() => { console.log('第二個加載完成了'); resolve(); }, 3000); }) Promise.all([p1,p2,p3]).then(function(){ console.log('loading效果圖消失'); })
18.get和post的區別
get請求能被緩存,post請求不能;get請求發送的數據很小,不安全;post請求數據量沒有限制相對較安全。
二、第二家
1.組件間傳值
2.v-if和v-show共同點和不同點
3.v-if(v-show)和v-for可以一起使用麽?
4.為什么data是一個函數
5.介紹一下深淺拷貝
引用數據類型,名字存在棧內存里,值存在堆內存中,通過地址引用堆內存中的值。引用數據類型存在深淺拷貝的問題。
淺拷貝一個對象(直接賦值),賦值后兩個變量使用的相同內容,一個操作,另一個也會變化(也有自己的適用場景)。
深拷貝:1.通過遞歸的方式實現深拷貝,2.通過JSON對象實現深拷貝,3.展開運算符,4.lodash函數庫中的lodash.cloneDeep()實現
6.介紹一下vuex
veux是vue項目開發是的狀態管理工具,一個數據要在多個頁面共同使用時要用到vuex,vuex有五個成員state,mutations,getters,actions,modules,mutations是操作state數據的方法集合,
7.nextTick的原理()
8.介紹一下vue-loder插件解決了哪些問題
vue-loader是webpack下loader插件 可以把.vue文件 輸出成組件
9.vue路由的兩種模式
10.created和monuntd的區別
11.路由傳參
12.js里的事件循環,js執行機制
13.計算屬性和監聽屬性的區別和使用場景
14.webpack的配置優化配值
15.v-model雙向綁定的原理
三、第三家
1.css盒模型包括什么
2.清楚浮動有哪幾種方式,為什么要清楚浮動
3.行元素有哪些
4.css四種定位的區別
5.session和localg的區別
6.vue兄弟組件通訊
7.vue如何對數據響應式進行處理,數據改變了沒有被檢測到
8.vue路由傳參區別
9.windon.onlod和docu.writ的區別
10.事件委托
11.基本數據類型
12.jq隨dom增刪該
13.如何遍歷一個json對象的key和value
14.數據庫的基本操作