21年8.6面試總結


一、第一家

  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.數據庫的基本操作

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM