前端基礎(chǔ)面試題(一)

實(shí)現(xiàn)一個(gè)小盒子在另一個(gè)大盒子里面水平垂直居中

方法一:彈性盒子

.box1 {
    width: 100%;
    height: 500px;
    background-color: pink;
    /* 方法一:flex彈性盒子 */
    display: flex;
    justify-content: center;
    align-items: center; 
}

.box2 {
    width: 200px;
    height: 200px;
    background-color: skyblue;
}

方法二:絕對(duì)定位

.box1 {
    width: 100%;
    height: 500px;
    background-color: pink;
    position: relative;
}

.box2 {
    width: 200px;
    height: 200px;
    background-color: skyblue;
    /* 絕對(duì)定位 */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

方法三:彈性盒子泌神,外邊距自動(dòng)

.box1 {
    width: 100%;
    height: 500px;
    background-color: pink;
    display: flex;
}

.box2 {
    width: 200px;
    height: 200px;
    background-color: skyblue;
    margin: auto;
}

js有幾種類(lèi)型

兩種:簡(jiǎn)單數(shù)據(jù)類(lèi)型和復(fù)雜數(shù)據(jù)類(lèi)型

簡(jiǎn)單數(shù)據(jù)類(lèi)型包括:Number良漱、String舞虱、Boolean、Null母市、 Undefined矾兜、Symbol(ES6)

引用數(shù)據(jù)類(lèi)型包括:數(shù)組,對(duì)象患久,函數(shù)

簡(jiǎn)單數(shù)據(jù)類(lèi)型與引用數(shù)據(jù)類(lèi)型的區(qū)別

簡(jiǎn)單數(shù)據(jù)類(lèi)型包括:Number椅寺、String、Boolean蒋失、Null返帕、 Undefined、Symbol(ES6)

引用數(shù)據(jù)類(lèi)型包括:數(shù)組篙挽,對(duì)象荆萤,函數(shù)

區(qū)別:簡(jiǎn)單數(shù)據(jù)類(lèi)型是直接按值存放在棧中,也可以直接按值訪(fǎng)問(wèn)铣卡;復(fù)雜數(shù)據(jù)類(lèi)型是存放在堆里的對(duì)象,它在棧中存放的是堆里面的引用地址梧油,訪(fǎng)問(wèn)也是訪(fǎng)問(wèn)引用地址州邢,不是直接訪(fǎng)問(wèn)值量淌。

堆和棧的區(qū)別

棧(stack)會(huì)自動(dòng)分配內(nèi)存空間嫌褪,會(huì)自動(dòng)釋放笼痛。堆(heap)動(dòng)態(tài)分配的內(nèi)存,大小不定也不會(huì)自動(dòng)釋放摘刑。

深淺拷貝以及實(shí)現(xiàn)深淺拷貝的方法

深拷貝:拷貝數(shù)據(jù)枷恕,改變舊對(duì)象的數(shù)據(jù)的時(shí)候徐块,新對(duì)象的數(shù)據(jù)不會(huì)改變

淺拷貝:拷貝引用地址,改變舊對(duì)象的數(shù)據(jù)的時(shí)候胡控,新對(duì)象的數(shù)據(jù)也會(huì)跟著改變

實(shí)現(xiàn)深拷貝的方法: 1. JSON.parse(JSON.stringify()) 2. 遞歸for-in 3. jQuery $.extend() 4. _.cloneDeep()

實(shí)現(xiàn)淺拷貝的方法: 1. 剩余(擴(kuò)展)運(yùn)算符 2. concat() 3. Object.assign() 4. slice()

防抖和節(jié)流

防抖和節(jié)流都是為了阻止某項(xiàng)操作高頻觸發(fā)

防抖是讓用戶(hù)多次觸發(fā)昼激,只生效最后一次,適用于只需要一次觸發(fā)生效的場(chǎng)景
防抖應(yīng)用場(chǎng)景:表單里的按鈕敛劝,用戶(hù)點(diǎn)擊過(guò)快纷宇,發(fā)送多次請(qǐng)求

節(jié)流是讓用戶(hù)的操作像捶,每隔一段時(shí)間觸發(fā)一次,適用于多次觸發(fā)要多次生效的場(chǎng)景
節(jié)流應(yīng)用場(chǎng)景:監(jiān)聽(tīng)滾動(dòng)事件

事件循環(huán)

同步任務(wù)和異步任務(wù)分別進(jìn)入不同的執(zhí)行"場(chǎng)所"; 同步任務(wù)進(jìn)入主線(xiàn)程释簿,異步任務(wù)進(jìn)入Event Table并注冊(cè)回調(diào)函數(shù)庶溶。
當(dāng)指定的事情完成時(shí)懂鸵,Event Table會(huì)將這個(gè)函數(shù)移入任務(wù)隊(duì)列(task quene)匆光,等待主線(xiàn)程的任務(wù)執(zhí)行完畢;
當(dāng)棧中的代碼執(zhí)行完畢,執(zhí)行棧(call stack)中的任務(wù)為空時(shí)夺巩,就會(huì)讀取任務(wù)隊(duì)列(task quene)中的任務(wù)柳譬,去執(zhí)行對(duì)應(yīng)的回調(diào);
如此循環(huán)休傍,就形成js的事件循環(huán)機(jī)制(Event Loop)。

new操作符做了那些事情柴墩?

開(kāi)辟一個(gè)內(nèi)存存放新創(chuàng)建的對(duì)象--創(chuàng)建實(shí)例對(duì)象

將構(gòu)造函數(shù)里的this指向?qū)嵗龑?duì)象

給實(shí)例對(duì)象新增屬性和方法

隱式的返回了實(shí)例對(duì)象

如果后臺(tái)沒(méi)做分頁(yè)江咳,沒(méi)傳size和pagination哥放,給你傳一萬(wàn)條數(shù)據(jù)甥雕,你怎么優(yōu)化性能

先按照需求前端自己實(shí)現(xiàn)分頁(yè),設(shè)置查看更多啥的

閉包

閉包是指一個(gè)內(nèi)部函數(shù)了引用外部函數(shù)的局部變量挟阻。閉包延長(zhǎng)了外部函數(shù)的局部變量的作用域附鸽。

rem和em的區(qū)別

rem和em都是相對(duì)單位瞒瘸,rem是相對(duì)于html根元素情臭;em是根據(jù)父元素或者祖先元素,也會(huì)受自己的影響丁侄。

css常用選擇器

基本選擇器:元素選擇器(div)朝巫,id選擇器(#)劈猿,類(lèi)選擇器(.)潮孽,通配符選擇器(*)
復(fù)合選擇器:交集選擇器往史,并集選擇器(,)
關(guān)系選擇器:后代選擇器(空格),子代選擇器(>)
屬性選擇器
偽類(lèi)選擇器(:link,:hover,:focus,:visited)

js有哪些內(nèi)置對(duì)象

常用的有:Math對(duì)象,Date對(duì)象,Array對(duì)象,String對(duì)象等

隱藏元素有幾種方法

visibility:hidden (占空間)
display:none(不會(huì)占用空間)
opacity:0 (占空間请祖,透明度為0)
寬高設(shè)為0脖祈,然后再overflow:hidden

var,let,const的區(qū)別

let和const是es6新增的用于聲明變量的特性
const是聲明常量盖高,不可更改
var可以重復(fù)聲明,let和const不可以重復(fù)聲明
var有變量提升和預(yù)解析席纽,let和const沒(méi)有
let和const具有塊級(jí)作用域胆筒,var沒(méi)有

this關(guān)鍵字的指向你是怎么理解的诈豌?具體有哪些情況矫渔?

1.獨(dú)立的函數(shù)中的this指向window
2,對(duì)象的方法中的this指向該對(duì)象
3,事件處理函數(shù)中的this 指向事件源(綁定事件元素)
4,構(gòu)造函數(shù)中的this指向new創(chuàng)建的空對(duì)象
5顿痪,定時(shí)器中的this指向window
6.箭頭函數(shù)中的this指向上下文中的this

列舉數(shù)組的遍歷方法并簡(jiǎn)述用法蚁袭,最少5個(gè)

foEach——遍歷數(shù)組
map——指定條件處理數(shù)組元素石咬,返回由處理過(guò)后的元素組成的新數(shù)組
filter——篩選出滿(mǎn)足指定條件的數(shù)組元素鬼悠,返回滿(mǎn)足條件的元素組成的新數(shù)組
some——判斷數(shù)組中的元素是否滿(mǎn)足指定條件,只要有一個(gè)滿(mǎn)足就返回true
every——判斷數(shù)組中的元素是否滿(mǎn)足指定條件蹬挺,只要有一個(gè)不滿(mǎn)足就返回false

什么是跨域?如何解決跨域?

指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本巴帮。它是由瀏覽器的同源策略造成的,是瀏覽器對(duì)javascript施加的安全限制发乔。
jsonp script標(biāo)簽不受同源策略的限制栏尚≈缓蓿可以動(dòng)態(tài)生成script標(biāo)簽,通過(guò)回調(diào)函數(shù)的形式獲取到接口中的數(shù)據(jù)纵菌,缺點(diǎn)是:只能用于get請(qǐng)求
Cors 跨域資源共享 app.all(‘*’)
使用反向代理服務(wù)器nginix咱圆,服務(wù)器通信不受同源策略限制

get和post的區(qū)別

1.效率
GET的意思是『得』功氨,從服務(wù)器獲取數(shù)據(jù)(也可以上傳數(shù)據(jù)捷凄,參數(shù)就是),效率較高
POST的意思是『給』匈睁,但可以向服務(wù)器發(fā)送數(shù)據(jù)和下載數(shù)據(jù)航唆,效率不如GET
2.緩存
GET 請(qǐng)求能夠被緩存院刁,默認(rèn)的請(qǐng)求方式也是有緩存的
POST請(qǐng)求默認(rèn)不會(huì)緩存
3.安全性
GET的所有參數(shù)全部包裝在URL中,明文顯示超营,且服務(wù)器的訪(fǎng)問(wèn)日志會(huì)記錄阅虫,非常不安全
POST的URL中只有資源路徑颓帝,不包含參數(shù),參數(shù)封裝在二進(jìn)制的數(shù)據(jù)體中吕座,服務(wù)器也不會(huì)記錄參數(shù)吴趴,相對(duì)安全侮攀。所有涉及用戶(hù)隱私的數(shù)據(jù)都要用POST傳輸
4.數(shù)據(jù)量
HTTP協(xié)議中均沒(méi)有對(duì)GET和POST請(qǐng)求的數(shù)據(jù)大小進(jìn)行限制,但是實(shí)際應(yīng)用中它們通常受限于軟硬件平臺(tái)的設(shè)計(jì)和性能撇叁。
GET:不同的瀏覽器和服務(wù)器不同畦贸,一般限制在2~8K之間薄坏,更加常見(jiàn)的是1k以?xún)?nèi)
POST方法提交的數(shù)據(jù)比較大,大小靠服務(wù)器的設(shè)定值限制胶坠,PHP默認(rèn)是2M(具體的話(huà)大家以后看后端給的開(kāi)發(fā)文檔就行了)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杈绸,一起剝皮案震驚了整個(gè)濱河市矮瘟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌劫侧,老刑警劉巖哨啃,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件审姓,死亡現(xiàn)場(chǎng)離奇詭異祝峻,居然都是意外死亡扎筒,警方通過(guò)查閱死者的電腦和手機(jī)嗜桌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)骨宠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)相满,“玉大人,你說(shuō)我怎么就攤上這事棕所×帐。” “怎么了躲撰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵拢蛋,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我快压,道長(zhǎng)垃瞧,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮嗦锐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萎羔。我一直安慰自己,他們只是感情好外驱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布昵宇。 她就那樣靜靜地躺著,像睡著了一般瓦哎。 火紅的嫁衣襯著肌膚如雪蒋譬。 梳的紋絲不亂的頭發(fā)上犯助,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天维咸,我揣著相機(jī)與錄音癌蓖,去河邊找鬼。 笑死坐慰,一個(gè)胖子當(dāng)著我的面吹牛用僧,可吹牛的內(nèi)容都是我干的责循。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼着逐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耸别!你這毒婦竟也來(lái)了秀姐?” 一聲冷哼從身側(cè)響起若贮,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伸头,沒(méi)想到半個(gè)月后舷蟀,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扫步,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虎敦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吭历,死狀恐怖晌区,靈堂內(nèi)的尸體忽然破棺而出朗若,到底是詐尸還是另有隱情昌罩,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站轨功,受9級(jí)特大地震影響古涧,放射性物質(zhì)發(fā)生泄漏垂券。R本人自食惡果不足惜菇爪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一熙揍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诈嘿,春花似錦削葱、人聲如沸析砸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至陨囊,卻和暖如春弦疮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜘醋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工胁塞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人压语。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓啸罢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胎食。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扰才,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容