千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

JS高頻面試題:
1.介紹JS有哪些內(nèi)置對(duì)象?
數(shù)據(jù)封裝類對(duì)象:Object、Array、Boolean、Number、String
其他對(duì)象:Function、Arguments、Math、Date、RegExp、Error
ES6新增對(duì)象:Symbol(標(biāo)識(shí)唯一性的ID)、Map、Set、Promise、Proxy、Reflect
2.如何最小化重繪和回流?
需要對(duì)元素進(jìn)行復(fù)雜的操作時(shí),可以先隱藏,操作完成后再展示
需要?jiǎng)?chuàng)建多個(gè)dom節(jié)點(diǎn)時(shí),使用DomcumentFragment創(chuàng)建完成后一次性的加入document
緩存Layout屬性值,如:var left = elem.offsetLeft;這樣,多次使用left只產(chǎn)生一次回流
盡量避免用table布局(table元素一旦觸發(fā)回流就會(huì)導(dǎo)致table里所有的其他元素回流)
3.JS的作用鏈域?
全局函數(shù)無(wú)法查看局部函數(shù)的內(nèi)部細(xì)節(jié),但局部函數(shù)可以查看其上層的函數(shù)細(xì)節(jié),直至全局細(xì)節(jié)
??如果當(dāng)前作用域沒(méi)有找到屬性或方法,會(huì)向上層作用域查找,直至全局函數(shù),這種形式就是作用域
4.數(shù)據(jù)請(qǐng)求
(1)xhr
==>var xhr = new XMLHttpRequest()
??xhr.open('get','www.aaaa.com',true)//異步
??xhr.send()
??xhr.onreadystatechange = function(){
????????//readstate 4
????????//status 200-300
????????//200 成功
????????//300 302?Redirect
????????//304 從緩存讀取數(shù)據(jù)
????????//404 not found
????????//500 服務(wù)器錯(cuò)誤
??????}
xhr可以通過(guò)xhr.abort()方法取消,終止請(qǐng)求
??(2)fetch(w3c)
?fetch('url',
??????{method:'post',body:'',credencial:'include'})
?.then(res=>res.json())
?.then(res=>{console.log(res)})
//兼容性問(wèn)題
//發(fā)送的請(qǐng)求,默認(rèn)是不帶cookie。 credencial:'include'
(3)jsonp(解決跨域)
動(dòng)態(tài)創(chuàng)建script src指向沒(méi)有跨域限制 onload
?????后端返回的數(shù)據(jù)格式一定是 test('['111','222','333']')
前端提前定義好test這個(gè)方法,通過(guò)形參拿到數(shù)據(jù)
?????jsonp可以做get請(qǐng)求,無(wú)法做post請(qǐng)求(缺點(diǎn))
jsonp不可以取消
5.跨域和同源策略
所謂的同源策略其實(shí)是瀏覽器的一種機(jī)制,只允許同源,也就是同協(xié)議、同域名、同端口的情況下才能進(jìn)行數(shù)據(jù)交互。但是我們?cè)陂_(kāi)發(fā)項(xiàng)目的過(guò)程中,往往一個(gè)項(xiàng)目的接口不止一個(gè)域,所以往往就需要做跨域的處理,通常的跨域方式有:
?? (1)JSONP,主要依賴的是script標(biāo)簽不受同源策略影響,src指向某一個(gè)接口的地址,同步需要傳遞callback回調(diào)函數(shù)名字,這樣當(dāng)接口調(diào)用成功后,本地創(chuàng)建的全乎回調(diào)函數(shù)就會(huì)執(zhí)行,并且接收到數(shù)據(jù),不適用img標(biāo)簽的原因是因?yàn)閕mg標(biāo)簽無(wú)法執(zhí)行js語(yǔ)句
(2)CORS,依賴服務(wù)器對(duì)前端的請(qǐng)求頭信息進(jìn)行放行,不做限制
?? Access—Control-Allow-Origin配置成*
?????(3)代理訪問(wèn),前段訪問(wèn)不存在的跨域問(wèn)題的代理服務(wù)器,代理服務(wù)器再去訪問(wèn)目標(biāo)服務(wù)器(服務(wù)器之間沒(méi)有跨域問(wèn)題)