![2023年web前端面試題及答案_第1頁(yè)](http://file4.renrendoc.com/view11/M02/10/28/wKhkGWWcpKqAVf0yAAHBN-H7s24366.jpg)
![2023年web前端面試題及答案_第2頁(yè)](http://file4.renrendoc.com/view11/M02/10/28/wKhkGWWcpKqAVf0yAAHBN-H7s243662.jpg)
![2023年web前端面試題及答案_第3頁(yè)](http://file4.renrendoc.com/view11/M02/10/28/wKhkGWWcpKqAVf0yAAHBN-H7s243663.jpg)
![2023年web前端面試題及答案_第4頁(yè)](http://file4.renrendoc.com/view11/M02/10/28/wKhkGWWcpKqAVf0yAAHBN-H7s243664.jpg)
![2023年web前端面試題及答案_第5頁(yè)](http://file4.renrendoc.com/view11/M02/10/28/wKhkGWWcpKqAVf0yAAHBN-H7s243665.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023年web前端面試題及答案web前端面試題及答案
HTML/CSS部分
1、什么是盒子模型?
在網(wǎng)頁(yè)中,一個(gè)元素占有空間的大小由幾個(gè)部分構(gòu)成,其中包括元素的內(nèi)容(content),元素的內(nèi)邊距(padding),元素的邊框(border),元素的外邊距(margin)四個(gè)部分。這四個(gè)部分占有的空間中,有的部分可以顯示相應(yīng)的內(nèi)容,而有的部分只用來(lái)分隔相鄰的區(qū)域或區(qū)域。4個(gè)部分一起構(gòu)成了css中元素的盒模型。
2、行內(nèi)元素有哪些?塊級(jí)元素有哪些?空(void)元素有那些?
行內(nèi)元素:a、b、span、img、input、strong、select、label、em、button、textarea
塊級(jí)元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
空元素:即系沒(méi)有內(nèi)容的HTML元素,例如:br、meta、hr、link、input、img
3、CSS實(shí)現(xiàn)垂直水平居中
一道經(jīng)典的問(wèn)題,實(shí)現(xiàn)方法有許多種,以下是其中一種實(shí)現(xiàn):
HTML結(jié)構(gòu):
CSS:
.wrapper{position:relative;}
.content{
background-color:#6699FF;
width:200px;
height:200px;
position:absolute;//父元素須要相對(duì)定位
top:50%;
left:50%;
margin-top:-100px;//二分之一的height,width
margin-left:-100px;
}
4、簡(jiǎn)述一下src與href的區(qū)分
href是指向網(wǎng)絡(luò)資源所在位置,建立和當(dāng)前元素(錨點(diǎn))或當(dāng)前文檔(鏈接)之間的鏈接,用于超鏈接。
src是指向外部資源的位置,指向的內(nèi)容將會(huì)嵌入到文檔中當(dāng)前標(biāo)簽所在位置;在懇求src資源時(shí)會(huì)將其指向的資源下載并應(yīng)用到文檔內(nèi),例如js腳本,img圖片和frame等元素。當(dāng)閱讀器解析到該元素時(shí),會(huì)暫停其他資源的下載和處理,直到將該資源加載、編譯、執(zhí)行完畢,圖片和框架等元素也如此,類似于將所指向資源嵌入當(dāng)前標(biāo)簽內(nèi)。這也是為什么將js腳本放在底部而不是頭部。
5、什么是CSSHack?
一般來(lái)說(shuō)是針對(duì)不同的閱讀器寫不同的CSS,就是CSSHack。
IE閱讀器Hack一般又分為三種,條件Hack、屬性級(jí)Hack、選擇符Hack(具體參考CSS文檔:css文檔)。例如:
//1、條件Hack
//2、屬性Hack
.test{
color:#090\9;/*ForIE8+*/
*color:#f00;/*ForIE7andearlier*/
_color:#ff0;/*ForIE6andearlier*/
}
//3、選擇符Hack
*html.test{color:#090;}/*ForIE6andearlier*/
*+html.test{color:#ff0;}/*ForIE7*/
6、簡(jiǎn)述同步和異步的區(qū)分
同步是堵塞模式,異步是非堵塞模式。
同步就是指一個(gè)進(jìn)程在執(zhí)行某個(gè)懇求的時(shí)候,若該懇求須要一段時(shí)間才能返回信息,那么這個(gè)進(jìn)程將會(huì)始終等待下去,直到收到返回信息才接著執(zhí)行下去;
異步是指進(jìn)程不須要始終等下去,而是接著執(zhí)行下面的操作,不管其他進(jìn)程的狀態(tài)。當(dāng)有消息返回時(shí)系統(tǒng)會(huì)通知進(jìn)程進(jìn)行處理,這樣可以提高執(zhí)行的效率。
7、px和em的區(qū)分
px和em都是長(zhǎng)度單位,區(qū)分是,px的值是固定的,指定是多少就是多少,計(jì)算比較簡(jiǎn)單。em得值不是固定的,并且em會(huì)繼承父級(jí)元素的字體大小。
閱讀器的默認(rèn)字體高都是16px。所以未經(jīng)調(diào)整的閱讀器都符合:1em=16px。那么12px=0.75em,10px=0.625em
8、什么叫優(yōu)雅降級(jí)和漸進(jìn)增加?
漸進(jìn)增加progressiveenhancement:
針對(duì)低版本閱讀器進(jìn)行構(gòu)建頁(yè)面,保證最基本的功能,然后再針對(duì)高級(jí)閱讀器進(jìn)行效果、交互等改進(jìn)和追加功能達(dá)到更好的用戶體驗(yàn)。
優(yōu)雅降級(jí)gracefuldegradation:
一起先就構(gòu)建完整的功能,然后再針對(duì)低版本閱讀器進(jìn)行兼容。
區(qū)分:
a.優(yōu)雅降級(jí)是從困難的現(xiàn)狀起先,并試圖削減用戶體驗(yàn)的供應(yīng)
b.漸進(jìn)增加則是從一個(gè)特別基礎(chǔ)的,能夠起作用的版本起先,并不斷擴(kuò)充,以適應(yīng)將來(lái)環(huán)境的須要
c.降級(jí)(功能衰減)意味著往回看;而漸進(jìn)增加則意味著朝前看,同時(shí)保證其根基處于平安地帶
9、閱讀器的內(nèi)核分別是什么?
IE:trident內(nèi)核
Firefox:gecko內(nèi)核
Safari:webkit內(nèi)核
Opera:以前是presto內(nèi)核,Opera現(xiàn)已改用GoogleChrome的Blink內(nèi)核
Chrome:Blink(基于webkit,Google與OperaSoftware共同開(kāi)發(fā))
JavaScript部分
1、怎樣添加、移除、移動(dòng)、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)?
1)創(chuàng)建新節(jié)點(diǎn)
createDocumentFragment()//創(chuàng)建一個(gè)DOM片段
createElement()//創(chuàng)建一個(gè)詳細(xì)的元素
createTextNode()//創(chuàng)建一個(gè)文本節(jié)點(diǎn)
2)添加、移除、替換、插入
appendChild()//添加
removeChild()//移除
replaceChild()//替換
insertBefore()//插入
3)查找
getElementsByTagName()//通過(guò)標(biāo)簽名稱
getElementsByName()//通過(guò)元素的Name屬性的值
getElementById()//通過(guò)元素Id,唯一性
2、實(shí)現(xiàn)一個(gè)函數(shù)clone,可以對(duì)JavaScript中的5種主要的數(shù)據(jù)類型(包括Number、String、Object、Array、Boolean)進(jìn)行值復(fù)制。
/**
*對(duì)象克隆
*支持基本數(shù)據(jù)類型及對(duì)象
*遞歸方法
*/
functionclone(obj){
varo;
switch(typeofobj){
caseundefined:
break;
casestring:
o=obj+;
break;
casenumber:
o=obj-0;
break;
caseboolean:
o=obj;
break;
caseobject://object分為兩種狀況對(duì)象(Object)或數(shù)組(Array)
if(obj===null){
o=null;
}else{
if(Ototype.toString.call(obj).slice(8,-1)===Array){
o=[];
for(vari=0;i<obj.length;i++){
o.push(clone(obj[i]));
}
}else{
o={};
for(varkinobj){
o[k]=clone(obj[k]);
}
}
}
break;
default:
o=obj;
break;
}
returno;
}
3、如何消退一個(gè)數(shù)組里面重復(fù)的元素?
//方法一:
vararr1=[1,2,2,2,3,3,3,4,5,6],
arr2=[];
for(vari=0,len=arr1.length;i<len;i++){
if(arr2.indexOf(arr1[i])<0){
arr2.push(arr1[i]);
}
}
document.write(arr2);//1,2,3,4,5,6
4、想實(shí)現(xiàn)一個(gè)對(duì)頁(yè)面某個(gè)節(jié)點(diǎn)的拖曳?如何做?(運(yùn)用原生JS)。
5、在Javascript中什么是偽數(shù)組?如何將偽數(shù)組轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)組?
偽數(shù)組(類數(shù)組):無(wú)法干脆調(diào)用數(shù)組方法或期望length屬性有什么特別的行為,但仍可以對(duì)真正數(shù)組遍歷方法來(lái)遍歷它們。典型的是函數(shù)的argument參數(shù),還有像調(diào)用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對(duì)象都屬于偽數(shù)組??梢赃\(yùn)用Atotype.slice.call(fakeArray)將數(shù)組轉(zhuǎn)化為真正的Array對(duì)象。
functionlog(){
varargs=Atotype.slice.call(arguments);
//為了運(yùn)用unshift數(shù)組方法,將argument轉(zhuǎn)化為真正的數(shù)組
args.unshift('(app)');
console.log.apply(console,args);
};
6、Javascript中callee和caller的作用?
caller是返回一個(gè)對(duì)函數(shù)的引用,該函數(shù)調(diào)用了當(dāng)前函數(shù);
callee是返回正在被執(zhí)行的function函數(shù),也就是所指定的function對(duì)象的正文。
7、請(qǐng)描述一下cookies,sessionStorage和localStorage的區(qū)分
sessionStorage用于本地存儲(chǔ)一個(gè)會(huì)話(session)中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個(gè)會(huì)話中的頁(yè)面才能訪問(wèn)并且當(dāng)會(huì)話結(jié)束后數(shù)據(jù)也隨之銷毀。因此sessionStorage不是一種長(zhǎng)久化的本地存儲(chǔ),僅僅是會(huì)話級(jí)別的存儲(chǔ)。而localStorage用于長(zhǎng)久化的本地存儲(chǔ),除非主動(dòng)刪除數(shù)據(jù),否則數(shù)據(jù)是恒久不會(huì)過(guò)期的。
webstorage和cookie的區(qū)分
WebStorage的概念和cookie相像,區(qū)分是它是為了更大容量存儲(chǔ)設(shè)計(jì)的。Cookie的大小是受限的,并且每次你懇求一個(gè)新的頁(yè)面的時(shí)候Cookie都會(huì)被發(fā)送過(guò)去,這樣無(wú)形中奢侈了帶寬,另外cookie還須要指定作用域,不行以跨域調(diào)用。
除此之外,WebStorage擁有setItem,getItem,removeItem,clear等方法,不像cookie須要前端開(kāi)發(fā)者自己封裝setCookie,getCookie。但是Cookie也是不行以或缺的:Cookie的作用是與服務(wù)器進(jìn)行交互,作為HTTP規(guī)范的一部分而存在,而WebStorage僅僅是為了在本地存儲(chǔ)數(shù)據(jù)而生。
8、手寫數(shù)組快速排序
關(guān)于快排算法的具體說(shuō)明,可以參考阮一峰老師的文章快速排序
快速排序的思想很簡(jiǎn)潔,整個(gè)排序過(guò)程只須要三步:
(1)在數(shù)據(jù)集之中,選擇一個(gè)元素作為基準(zhǔn)(pivot)。
(2)全部小于基準(zhǔn)的元素,都移到基準(zhǔn)的左邊;全部大于基準(zhǔn)的元素,都移到基準(zhǔn)的`右邊。
(3)對(duì)基準(zhǔn)左邊和右邊的兩個(gè)子集,不斷重復(fù)第一步和其次步,直到全部子集只剩下一個(gè)元素為止。
9、統(tǒng)計(jì)字符串a(chǎn)aaabbbccccddfgh中字母?jìng)€(gè)數(shù)或統(tǒng)計(jì)最多字母數(shù)。
varstr=aaaabbbccccddfgh;
varobj={};
for(vari=0;i
varv=str.charAt(i);
if(obj[v]obj[v].value==v){
obj[v].count=++obj[v].count;
}else{
obj[v]={};
obj[v].count=1;
obj[v].value=v;
}
}
for(keyinobj){
document.write(obj[key].value+'='+obj[key].count+'');//a=4b=3c=4d=2f=1g=1h=1
}
10、寫一個(gè)function,清除字符串前后的空格。(兼容全部閱讀器)
functiontrim(str){
if(strtypeofstr===string){
returnstr.replace(/(^\s*)|(\s*)$/g,);//去除前后空白符
}
}
面試官愛(ài)問(wèn)的問(wèn)題
01、原來(lái)公司工作流程是怎么樣的,如何與其他人協(xié)作的?如何夸部門合作的?
02、你遇到過(guò)比較難的技術(shù)問(wèn)題是?你是如何解決的?
03、設(shè)計(jì)模式知道什么是singleton,factory,strategy,decrator么?
04、常運(yùn)用的庫(kù)有哪些?常用的前端開(kāi)發(fā)工具?開(kāi)發(fā)過(guò)什么應(yīng)用或組件?
05、頁(yè)面重構(gòu)怎么操作?
06、列舉IE與其他閱讀器不一樣的特性?
07、99%的網(wǎng)站都須要被重構(gòu)是那本書上寫的?
08、什么叫優(yōu)雅降級(jí)和漸進(jìn)增加?
09、是否了解公鑰加密和私鑰加密。
10、WEB應(yīng)用從服務(wù)器主動(dòng)推送Data到客戶端有那些方式?
11、對(duì)Node的優(yōu)點(diǎn)和缺點(diǎn)提出了自己的看法?
12、你有用過(guò)哪些前端性能優(yōu)化的方法?
13、http狀態(tài)碼有那些?分別代表是什么意思?
14、一個(gè)頁(yè)面從輸入U(xiǎn)RL到頁(yè)面加載顯示完成,這個(gè)過(guò)程中都發(fā)生了什么?(流程說(shuō)的越具體越好)
15、部分地區(qū)用戶反應(yīng)網(wǎng)站很卡,請(qǐng)問(wèn)有哪些可能性的緣由,以及解決方法?
16、從打開(kāi)app到刷新出內(nèi)容,整個(gè)過(guò)程中都發(fā)生了什么,假如感覺(jué)慢,怎么定位問(wèn)題,怎么解決?
17、除了前端以外還了解什么其它技術(shù)么?你最最厲害的技能是什么?
18、你用的得心應(yīng)手用的嫻熟地編輯器開(kāi)發(fā)環(huán)境是什么樣子?
19、對(duì)前端界面工程師這個(gè)職位是怎么樣理解的?它的前景會(huì)怎么樣?
20、你怎么看待WebApp、hybridApp、NativeApp?
21、你移動(dòng)端前端開(kāi)發(fā)的理解?(和Web前端開(kāi)發(fā)的主要區(qū)分是什么?)
22、你對(duì)加班的看法?
23、平常如何管理你的項(xiàng)目?
24、說(shuō)說(shuō)最近最流行的一些東西吧?常去哪些網(wǎng)站?
25、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司員工工作一年個(gè)人工作總結(jié)2024(3篇)
- 租房安全責(zé)任承諾協(xié)議書(5篇)
- 2025年項(xiàng)目策劃管理權(quán)交接協(xié)議書
- 2025年住宅區(qū)綠化工程施工合同協(xié)議書
- 2025年分手同居離婚正式協(xié)議
- 2025年協(xié)議離婚的特殊處理
- 2025年特斯拉項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年吊裝施工安全責(zé)任合同全文模板
- 2025年農(nóng)村建設(shè)用地上架交易協(xié)議書范本
- 2025年觸媒材料項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年“春訓(xùn)”學(xué)習(xí)心得體會(huì)例文(3篇)
- 咯血病人介入術(shù)后護(hù)理
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 春節(jié)節(jié)后復(fù)工全員安全意識(shí)提升及安全知識(shí)培訓(xùn)
- 道路運(yùn)輸企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核試題庫(kù)(含參考答案)
- 貴州省貴陽(yáng)市2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 稻盛和夫的哲學(xué)與阿米巴
- 冷庫(kù)驗(yàn)證方案
- 行政事業(yè)單位會(huì)計(jì)實(shí)操
- 中國(guó)燃?xì)饨ㄔO(shè)工程竣工驗(yàn)收暫行規(guī)定
- 春尺蠖測(cè)報(bào)辦法
評(píng)論
0/150
提交評(píng)論