簡單面試題

qq_33712668發表於2020-12-03

JS

Js資料型別,區別是什麼,如何判斷
  • 基本:undefined,null,boolean,number,string
    引用型別:普通物件,陣列物件,日期物件等等
    symbol
  • 區別:按值引用和按址引用,值型別存在於棧記憶體中,引用型別會在對記憶體中為其開闢一段空間
  • typeof 有限制,判斷引用型別判斷不出來,都是object,引用型別只有函式可以判斷出來,且null也是object
  • instanceof後面只可以跟引用型別,返回值是boolean值,不可以判斷null,null直接用===就好了
  • 萬能方法 Object.prototype.toString.call(),結果是[Object Array],[Object Number]
var、let、const區別

var沒有塊狀作用域,只有全域性和區域性(函式內)
let有塊狀作用域,且let不會變數提升
const宣告的是基礎型別時,該變數無法改變,且宣告時必須初始化,否則會報錯。但是宣告引用型別時,則只有指向的地址無法改變,該變數可以改變。

陣列的方法,列舉一些

專案中對陣列和字串的處理

幾個常用的請求狀態碼

根據狀態碼可以清楚反應出當前互動的結果及原因
200 ok 成功

301 永久轉移 =>
域名更改,訪問原始域名重定向到新的域名

302 臨時轉移 =>

伺服器負載均衡,一臺伺服器已經達到最大併發數的時,會把後續訪問的使用者臨時轉移到其他伺服器機組上處理
偶爾專案中會把所有的圖片放到單獨的伺服器上“圖片伺服器”,這樣減少主伺服器的壓力,當使用者向主伺服器訪問圖片時,主伺服器都把它轉移到圖片伺服器上處理
307 臨時重定向 =>
網站現在是基於https做的,如果訪問的是http會基於307重定向到https協議上

304 設定快取 =>
對於不經常更新的資原始檔,例如js/css/html/img等,伺服器會結合客戶端設定304快取。第一次載入過這些資源就快取到客戶端,下次再獲取的時候,是從快取中獲取,如果資源更新了,伺服器會通過最後修改時間來強制讓客戶端從伺服器重新拉取。這是伺服器來做的。基於ctrl+f5強制重新整理頁面,304做的快取就沒有用了

400 請求引數錯誤
401 無許可權訪問
404 找不到資源/地址不存在
413 給伺服器互動的內容資源超過伺服器的最大限制,伺服器不願處理

cookie和localstorage區別

seesion是關閉瀏覽器就沒了,local還存在
cookie是結合服務端設定,第一次輸入使用者密碼後返回cookie種於瀏覽器中,之後每次請求都會帶上cookie。我們也可以自己用document.cookie設定cookie,cookie包括name,value,過期時間等等等。
注意設定了cookie涉及到跨域的時候要加上with-credential這個頭
cookie的大小是4kb。localStorage是5MB。

這仨都是同源的,比如百度的不可以用於騰訊下,為了安全啊。但是cookie的domain可以用於前端父子域跨域傳值。

webpack作用是什麼

核心是什麼,有了解過什麼loader嗎

package.json是幹嘛的
vue是單頁應用
  • vue是單頁應用還是多頁,那為什麼還有路由變化
vue-router的導航勾子用過嗎,說一下

vue-router

Vue的生命週期

各個一般都用於什麼,哪裡完成了data資料的初始化,chart.js中需要獲取檢視,在哪個生命週期

vuex是什麼,state,mutation,action簡單說下都是幹什麼的

vuex

vue中父子元件如何通訊

父子元件通訊

vue中非父子元件通訊

vuex和event bus

為什麼會有跨域問題,有哪些解決方法(瀏覽器認為不安全,後端設定頭)

jsonp的弊端
跨域

簡單說下get和post在使用上的區別

【傳參方式不同】
get是基於url地址“問號傳參”,post是基於“請求主體“把資訊傳遞給伺服器”
post給得多,瀏覽器對url長度有最大限制,超過部分瀏覽器截掉,post是基於主體的,理論上主體沒有限制,但專案中會自己做大小限制,防止傳遞資訊過大導致請求遲遲不完成
這是約定俗成的規範不是官方說法,多年形成的開發規範。
【get不安全,post相對安全】
因為get是基於問號傳參把資訊傳遞給伺服器,容易被url劫持,post基於請求主體傳遞,相對來說不好被劫持;所以登入註冊等涉及安全性的互動操作,我們都應該用post請求
【get會產生不可控制的快取,post不會】
連續向相同地址(並且傳遞的引數資訊也是相同的)傳送請求,瀏覽器會把之前獲取的資料從快取中拿到返回,導致無法獲取伺服器最新的資料(post不會)
解決辦法:

xhr.open(‘get’, /temp/list?lx=1000&{Math.random()});
1
保證每次請求的地址不完全一致,在每一次請求的末尾追加一個隨機數即可。瀏覽器的快取機制,不可控的快取機制,可控的叫304

computed,watch是幹什麼的
flex佈局用過嗎,說一下
fixed和absolute
盒模型說一下
css有哪些選擇器,列舉一下
css垂直水平居中
行元素和塊狀元素列舉,說下區別
你在專案中遇到的困難,怎麼克服的,哪一個印象比較深
移動端和pc端開發的區別
為什麼會出現1px畫素問題
為什麼要用Rem彈性佈局,他是幹嘛的,你怎麼做的
不用外掛的話使用Rem如何實現等比縮放的 不問!
字型呢?用不用

相關文章