




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、XX公司產(chǎn)品部-前端面試題-答案產(chǎn)品部Beijing前端開發(fā)面試知識(shí)點(diǎn)大綱:HTML&CSS:HTML5、對Web標(biāo)準(zhǔn)的理解、瀏覽器內(nèi)核差異、兼容性、hack、CSS基本功:布局、盒子模型、選擇器優(yōu)先級(jí)及使用、CSS3、移動(dòng)端適應(yīng)JavaScript:數(shù)據(jù)類型、面向?qū)ο蟆⒗^承、閉包、插件、作用域、跨域、原型鏈、模塊化、自定義事件、內(nèi)存泄漏、事件機(jī)制、異步裝載回調(diào)、模板引擎、Nodejs、JSON、ajax等。其他:HTTP、安全、正則、優(yōu)化、重構(gòu)、響應(yīng)式、移動(dòng)端、團(tuán)隊(duì)協(xié)作、可維護(hù)、SEO、UED、架構(gòu)、職業(yè)生涯作為一名前端工程師,無論工作年頭長短都應(yīng)該必須掌握的知識(shí)點(diǎn):1、DOM結(jié)構(gòu)一
2、一兩個(gè)節(jié)點(diǎn)之間可能存在哪些關(guān)系以及如何在節(jié)點(diǎn)之間任意移動(dòng)。2、DOM操作一一如何添加、移除、移動(dòng)、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)等。3、事件一一如何使用事件,以及IE和標(biāo)準(zhǔn)DOM事件模型之間存在的差別。4、XMLHttpRequest這是什么、怎樣完整地執(zhí)行一次GET請求、怎樣檢測錯(cuò)誤。5、嚴(yán)格模式與混雜模式一一如何觸發(fā)這兩種模式,區(qū)分它們有何意義。6、盒模型一一外邊距、內(nèi)邊距和邊框之間的關(guān)系,及IE8以下版本的瀏覽器中的盒模型7、塊級(jí)元素與行內(nèi)元素一一怎么用CSS控制它們、以及如何合理的使用它們8、浮動(dòng)元素一一怎么使用它們、它們有什么問題以及怎么解決這些問題。9、HTML與XHTML一二者有什么區(qū)別,
3、你覺得應(yīng)該使用哪一個(gè)并說出理由。10、JSON一一作用、用途、設(shè)計(jì)結(jié)構(gòu)。HTML1、 Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?(1)、<!DOCTYPE>聲明位于文檔中的最前面,處于<html>標(biāo)簽之前。告知瀏覽器的解析器,用什么文檔類型規(guī)范來解析這個(gè)文檔。(2)、嚴(yán)格模式的排版和JS運(yùn)作模式是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。(3)、在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點(diǎn)無法工作。(4)、DOCTYPE不存在或格式不正確會(huì)導(dǎo)致文檔以混雜模式呈現(xiàn)。2、 行內(nèi)元素有哪些?塊級(jí)元素有哪些?空(void)元素有那些?(1
4、) CSS規(guī)范規(guī)定,每個(gè)元素都有display屬性,確定該元素的類型,每個(gè)元素都有默認(rèn)的display值,比如div默認(rèn)display屬性值為"block",成為"塊級(jí)"元素span默認(rèn)display屬性值為"inline",是"行內(nèi)"元素。(2)行內(nèi)元素有:abspanimginputselectstrong(強(qiáng)調(diào)的語氣)塊級(jí)元素有:divulollidldtddh1h2h3h4(3)知名的空元素:<br><hr><img><input><link>&l
5、t;meta>鮮為人知的是:<area><base><col><command><embed><keygen><param><source><track><wbr>3、 link和import的區(qū)別是?(1) link屬于XHTML標(biāo)簽,而import是CSS提供的;(2) 頁面被加載的時(shí),link會(huì)同時(shí)被加載,而import引用的CSS會(huì)等到頁面被加載完再加載;(3) import只在IE5以上才能識(shí)別,而link是XHTML標(biāo)簽,無兼容問題;(4) link方式的樣
6、式的權(quán)重高于import的權(quán)重.4、 瀏覽器的內(nèi)核分別是什么?*IE瀏覽器的內(nèi)核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera內(nèi)核原為Presto,現(xiàn)為Blink;常見兼容性問題?* png24位的圖片在iE6瀏覽器上出現(xiàn)背景,解決方案是做成PNG8.* 瀏覽器默認(rèn)的margin和padding不同。解決方案是加一個(gè)全局的*margin:0;padding:0;)來統(tǒng)一。* IE6雙邊距bug:塊屬性標(biāo)簽float后,又有橫行的margin情況下,在ie6顯示margin比設(shè)置的大。浮動(dòng)ie產(chǎn)生的雙倍距離#boxfloat:left;wi
7、dth:10px;margin:000100px;這種情況之下IE會(huì)產(chǎn)生20px的距離,解決方案是在float的標(biāo)簽樣式控制中加入_display:inline;將其轉(zhuǎn)化為行內(nèi)屬性。(這個(gè)符號(hào)只有ie6會(huì)識(shí)別)漸進(jìn)識(shí)別的方式,從總體中逐漸排除局部。首先,巧妙的使用“9”這一標(biāo)記,將IE游覽器從所有情況中分離出來。接著,再次使用“+”IE8和IE7、IE6分離開來,這樣IE8已經(jīng)獨(dú)立識(shí)別。css.bbbackground-color:#f1ee18;/*所有識(shí)另U*/.background-color:#00deff9;/*IE6、7、8識(shí)別*/+background-color:#a200ff
8、;/*IE6、7識(shí)另U*/_background-color:#1e0bd1;/*IE6識(shí)另U*/* IE下,可以使用獲取常規(guī)屬性的方法來獲取自定義屬性,也可以使用getAttribute()獲取自定義屬性;Firefox下,只能使用getAttribute()獲取自定義屬性.解決方法:統(tǒng)一通過getAttribute()獲取自定義屬性.* IE下,even對象有x,y屬性,但是沒有pageX,pageY屬性;Firefox下,event對象有pageX,pageY屬性,但是沒有x,y屬性.* 解決方法:(條件注釋)缺點(diǎn)是在IE瀏覽器下可能會(huì)增加額外的HTTP請求數(shù)。*Chrome中文界面下默
9、認(rèn)會(huì)將小于12px的文本強(qiáng)制按照12px顯示,可通過加入CSS屬性-webkit-text-size-adjust:none;解決.超鏈接訪問過后hover樣式就不出現(xiàn)了被點(diǎn)擊訪問過的超鏈接樣式不在具有hover和active了解決方法是改變CSS屬性的排列順序:L-V-H-A:a:linka:visiteda:hovera:activehtml5有哪些新特性、移除了那些元素?如何處理HTML5新標(biāo)簽的瀏覽器兼容問題?如彳可區(qū)分HTML和HTML5?* HTML5現(xiàn)在已經(jīng)不是SGML的子集,主要是關(guān)于圖像,位置,存儲(chǔ),多任務(wù)等功能的增加。* 繪畫canvas用于媒介回放的video和audio
10、元素本地離線存儲(chǔ)localStorage長期存儲(chǔ)數(shù)據(jù),瀏覽器關(guān)閉后數(shù)據(jù)不丟失;sessionStorage的數(shù)據(jù)在瀏覽器關(guān)閉后自動(dòng)刪除語意化更好的內(nèi)容元素,比如article、footer、header、nav、section表單控件,calendar、date、time、email、url、search新的技術(shù)webworker,websockt,Geolocation* 移除的元素-純表現(xiàn)的元素:basefont,big,center,font,s,strike,tt,u;對可用性產(chǎn)生負(fù)面影響的元素:frame,frameset,noframes;7、 支持HTML5新標(biāo)簽:* IE8/I
11、E7/IE6支持通過document.createElement方法產(chǎn)生的標(biāo)簽,可以利用這一特性讓這些瀏覽器支持HTML5新標(biāo)簽,瀏覽器支持新標(biāo)簽后,還需要添加標(biāo)簽?zāi)J(rèn)的樣式:* 當(dāng)然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架* !-ifltIE9><script>src="http:<!endif->8、 如何區(qū)分:DOCTYPE聲明新增的結(jié)構(gòu)元素功能元素,語義化的理解?用正確的標(biāo)簽做正確的事情!html語義化就是讓頁面的內(nèi)容結(jié)構(gòu)化,便于對瀏覽器、搜索引擎解析;在沒有樣式CCS情況下也以一種文檔格式顯示,并且是容易閱讀的。搜索引
12、擎的爬蟲依賴于標(biāo)記來確定上下文和各個(gè)關(guān)鍵字的權(quán)重,利于SEOo使閱讀源代碼的人對網(wǎng)站更容易將網(wǎng)站分塊,便于閱讀維護(hù)理解。9、 HTML5的離線儲(chǔ)存?localStorage長期存儲(chǔ)數(shù)據(jù),瀏覽器關(guān)閉后數(shù)據(jù)不丟失;sessionStorage數(shù)據(jù)在瀏覽器關(guān)閉后自動(dòng)刪除。十、(寫)描述一段語義的html代碼吧。(HTML5中新增加的很多標(biāo)簽(如:<article>、<nav>、<header>和<footer>等)就是基于語義化設(shè)計(jì)原則)< divid="header">|< h1>標(biāo)題</h1>
13、< h2>專注Web前端技術(shù)</h2>< /div>H一、iframe有那些缺點(diǎn)?< iframe會(huì)阻塞主頁面的Onload事件;< iframe和主頁面共享連接池,而瀏覽器對相同域的連接有限制,所以會(huì)影響頁面的并行加載。使用iframe之前需要考慮這兩個(gè)缺點(diǎn)。如果需要使用iframe,最好是通過javascript動(dòng)態(tài)給iframe添加src屬性值,這樣可以可以繞開以上兩個(gè)問題。十二、請描述下cookies,sessionStorage和localStorage的區(qū)另U?cookie在瀏覽器和服務(wù)器間來回傳遞。sessionStorage和lo
14、calStorage不會(huì)sessionStorage和localStorage的存儲(chǔ)空間更大;sessionStorage和localStorage有更多豐富易用的接口;sessionStorage和localStorage各自獨(dú)立的存儲(chǔ)空間;十三、如何實(shí)現(xiàn)瀏覽器內(nèi)多個(gè)標(biāo)簽頁之間的通信?(阿里)調(diào)用localstorge、cookies等本地存儲(chǔ)方式十四、webSocket如何兼容低瀏覽器?(阿里)AdobeFlashSocket、ActiveXHTMLFile(IE)、基于multipart編碼發(fā)送XHR、基于長輪詢的XHRCSS介紹一下css的盒子模型?(1)有兩種,IE盒子模型、標(biāo)準(zhǔn)W3
15、C盒子模型;IE的content部分包含了border和pading;(2)盒模型:內(nèi)容(content)、填充(padding)、邊界(margin)、邊框(border).CSS選擇符有哪些?哪些屬性可以繼承?優(yōu)先級(jí)算法如何計(jì)算?CSS3新增偽類有那些?*1.id選擇器(#myid)2 .類選擇器(.myclassname)3 .標(biāo)簽選擇器(div,h1,p)4 .相鄰選擇器(h1+p)5 .子選擇器(ul>li)6 .后代選擇器(lia)7 .通配符選擇器(*)8 .屬性選擇器(arel="external")9 .偽類選擇器(a:hover,li:nth-ch
16、ild)* 可繼承的樣式:font-sizefont-familycolor,ULLIDLDDDT;* 不可繼承的樣式:borderpaddingmarginwidthheight;* 優(yōu)先級(jí)就近原則,同權(quán)重情況下樣式定義最近者為準(zhǔn);* 載入樣式以最后載入的定位為準(zhǔn);優(yōu)先級(jí)為:important>id>class>tagimportant比內(nèi)聯(lián)優(yōu)先級(jí)高3、 CSS3新增偽類舉例:p:first-of-type選擇屬于其父元素的首個(gè)<p>元素的每個(gè)<p>元素。p:last-of-type選擇屬于其父元素的最后<p>元素的每個(gè)<p>
17、元素。p:only-of-type選擇屬于其父元素唯一的<p>元素的每個(gè)<p>元素p:only-child選擇屬于其父元素的唯一子元素的每個(gè)<p>元素。p:nth-child(2)選擇屬于其父元素的第二個(gè)子元素的每個(gè)<p>元素。:enabled:disabled控制表單控件的禁用狀態(tài)。:checked單選框或復(fù)選框被選中。4、 如何居中div?如何居中一個(gè)浮動(dòng)元素?給div設(shè)置一個(gè)寬度,然后添加margin:0auto屬性divwidth:200px;margin:0auto;5、 居中一個(gè)浮動(dòng)元素確定容器的寬高寬500高300的層設(shè)置層的外邊距
18、.divWidth:500px;height:300px;/高度可以不設(shè)Margin:-150px00-250px;position:relative;相對定位background-color:pink;/方便看效果left:50%;top:50%;6、 列出display的值,說明他們的作用。position的值,relative和absolute定位原點(diǎn)是?1. block象塊類型元素一樣顯示。none缺省值。象行內(nèi)元素類型一樣顯示。inline-block象行內(nèi)元素一樣顯示,但其內(nèi)容象塊類型元素一樣顯示。list-item象塊類型元素一樣顯示,并添加樣式列表標(biāo)記。2. "abs
19、olute生成絕對定位的元素,相對于static定位以外的第一個(gè)父元素進(jìn)行定位。* fixed(老IE不支持)生成絕對定位的元素,相對于瀏覽器窗口進(jìn)行定位。"relative生成相對定位的元素,相對于其正常位置進(jìn)行定位。* static默認(rèn)值。沒有定位,元素出現(xiàn)在正常的流中* (忽略top,bottom,left,rightz-index聲明)* inherit規(guī)定從父元素繼承position屬性的值。7、 CSS3有哪些新特性?CSS3實(shí)現(xiàn)圓角(border-radius:8px),陰影(box-shadow:10px),對文字加特效(text-shadow、),線性漸變(grad
20、ient),旋轉(zhuǎn)(transform)transform:rotate(9deg)scale(0.85,0.90)translate(0px,-30px)skew(-9deg,0deg);/旋轉(zhuǎn),縮放,定位,傾斜增加了更多的CSS選擇器多背景rgba八、一個(gè)滿屏品字布局如何設(shè)計(jì)?九、經(jīng)常遇到的CSS的兼容性有哪些?原因,解決方法是什么?為什么要初始化CSS樣式。因?yàn)闉g覽器的兼容問題,不同瀏覽器對有些標(biāo)簽的默認(rèn)值是不同的,如果沒對CSS初始化往往會(huì)出現(xiàn)瀏覽器之間的頁面顯示差異。當(dāng)然,初始化樣式會(huì)對SEO有一定的影響,但魚和熊掌不可兼得,但力求影響最小的情況下初始化。*最簡單的初始化方法就是:*p
21、adding:0;margin:0;(不建議)淘寶的樣式初始化:body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,tdmargin:0;padding:0;body,button,input,select,textareafont:12px/1.5tahoma,arial,5b8b4f53;h1,h2,h3,h4,h5,h6font-size:100%;address,cite,dfn,em,varfont-style:normal
22、;code,kbd,pre,sampfont-family:couriernew,courier,monospace;smallfont-size:12px;ul,ollist-style:none;atext-decoration:none;a:hovertext-decoration:underline;supvertical-align:text-top;subvertical-align:text-bottom;legendcolor:#000;fieldset,imgborder:0;button,input,select,textareafont-size:100%;tablebo
23、rder-collapse:collapse;border-spacing:0;H一、absolute的containingblock計(jì)算方式跟正常流有什么不同?十二、position跟display、margincollapse、overflow、float這些特性相互疊力口后會(huì)怎么樣?十三、對BFC規(guī)范的理解?(W3CCSS2.1規(guī)范中的一個(gè)概念,它決定了元素如何對其內(nèi)容進(jìn)行定位,以及與其他元素的關(guān)系和相互作用。)十四、css定義的權(quán)重以下是權(quán)重的規(guī)則:標(biāo)簽的權(quán)重為1,class的權(quán)重為10,id的權(quán)重為100,以下例子是演示各種定義的權(quán)重值:/*權(quán)重為1*/div(/*權(quán)重為10*/.c
24、lass1/*權(quán)重為100*/#id1/*權(quán)重為100+1=101*/#id1div/*權(quán)重為10+1=11*/.class1div/*權(quán)重為10+10+1=21*/.class1.class2div如果權(quán)重相同,則最后定義的樣式會(huì)起作用,但是應(yīng)該避免這種情況出現(xiàn)十五、解釋下浮動(dòng)和它的工作原理?清除浮動(dòng)的技巧十六、用過媒體查詢,針對移動(dòng)端的布局嗎?十七、使用CSS預(yù)處理器嗎?喜歡那個(gè)?SASS十八、如果需要手動(dòng)寫動(dòng)畫,你認(rèn)為最小時(shí)間間隔是多久,為什么?(阿里)多數(shù)顯示器默認(rèn)頻率是60Hz,即1秒刷新60次,所以理論上最小間隔為1/60*1000ms=16.7ms十九、display:inlin
25、e-block什么時(shí)候會(huì)顯示間隙?(攜程)移除空格、使用margin負(fù)值、使用font-size:0、letter-spacing、word-spacingJavaScript1、 JavaScript原型,原型鏈?有什么特點(diǎn)?2、 eval是做什么的?它的功能是把對應(yīng)的字符串解析成JS代碼并運(yùn)行;應(yīng)該避免使用eval,不安全,非常耗性能(2次,一次解析成js語句,一次執(zhí)行)。3、 null,undefined的區(qū)別?4、 寫一個(gè)通用的事件偵聽器函數(shù)。/event(事件)工具集,來源:markyun.Event=/頁面加載完成后readyEvent:function(fn)if(fn=null
26、)fn=document;varoldonload=window.onload;if(typeofwindow.onload!='function')window.onload=fn;elsewindow.onload=function()oldonload();fn(););),/視能力分別使用dom011dom2|IE方式來綁定事件/參數(shù):操作的元素,事件名稱,事件處理程序addEvent:function(element,type,handler)if(element.addEventListener)事件類型、需要執(zhí)行的函數(shù)、是否捕捉element.addEventLi
27、stener(type,handler,false);elseif(element.attachEvent)element.attachEvent('on'+type,function()handler.call(element););elseelement'on'+type=handler;,/移除事件removeEvent:function(element,type,handler)if(element.removeEnentListener)element.removeEnentListener(type,handler,false);elseif(ele
28、ment.datachEvent)element.detachEvent('on'+type,handler);elseelement'on'+type=null;,/阻止事件(主要是事件冒泡,因?yàn)镮E不支持事件捕獲)stopPropagation:function(ev)if(ev.stopPropagation)ev.stopPropagation();elseev.cancelBubble=true;,/取消事件的默認(rèn)行為preventDefault:function(event)if(event.preventDefault)event.preventD
29、efault();elseevent.returnValue=false;,/獲取事件目標(biāo)getTarget:function(event)returnevent.target|event.srcElement;,event;/獲取event對象的引用,取到事件的所有信息,確保隨時(shí)能使用getEvent:function(e)varev=e|window.event;if(!ev)varc=this.getEvent.caller;while(c)ev=c.arguments0;if(ev&&Event=ev.constructor)break;c=c.caller;retur
30、nev;Node.js的適用場景?高并發(fā)、聊天、實(shí)時(shí)消息推送6、 介紹js的基本數(shù)據(jù)類型。number,string,boolean,object,undefined7、 Javascript如何實(shí)現(xiàn)繼承?通過原型和構(gòu)造器8、 "1","2","3".map(parseInt)答案是多少?1,NaN,NaN因?yàn)閜arseInt需要兩個(gè)參數(shù)(val,radix),其中radix表示解析時(shí)用的基數(shù)。map傳了3個(gè)(element,index,array),對應(yīng)的radix不合法導(dǎo)致解析失敗。9、 如何創(chuàng)建一個(gè)對象?(畫出此對象的內(nèi)存圖)f
31、unctionPerson(name,age)=name;this.age=age;this.sing=function()alert()十、談?wù)凾his對象的理解。this是js的一個(gè)關(guān)鍵字,隨著函數(shù)使用場合不同,this的值會(huì)發(fā)生變化。但是有一個(gè)總原則,那就是this指的是調(diào)用函數(shù)的那個(gè)對象。this一般情況下:是全局對象Global。作為方法調(diào)用,那么this就是指這個(gè)對象十一、事件是?IE與火狐的事件機(jī)制有什么區(qū)別?如何阻止冒泡?1 .我們在網(wǎng)頁中的某個(gè)操作(有的操作對應(yīng)多個(gè)事件)。例如:當(dāng)我們點(diǎn)擊一個(gè)按鈕就會(huì)產(chǎn)生一個(gè)事件。是可以被JavaScrip
32、t偵測到的行為。2 .事件處理機(jī)制:IE是事件冒泡、火狐是事件捕獲;3 .ev.stopPropagation();十二、什么是閉包(closure),為什么要用它?執(zhí)行say667()后,say667()閉包內(nèi)部變量會(huì)存在,而閉包內(nèi)部函數(shù)的內(nèi)部變量不會(huì)存在.使得Javascript的垃圾回收機(jī)制GC不會(huì)收回say667()所占用的資源,因?yàn)閟ay667()的內(nèi)部函數(shù)的執(zhí)行需要依賴say667()中的變量。這是對閉包作用的非常直白的描述.functionsay667()/Localvariablethatendsupwithinclosurevarnum=666;varsayAlert=fun
33、ction()alert(num);num+;returnsayAlert;varsayAlert=say667();sayAlert()/執(zhí)行結(jié)果應(yīng)該彈出的667十三、"usestrict"是什么意思?使用它的好處和壞處分別是什么?十四、如何判斷一個(gè)對象是否屬于某個(gè)類?使用instanceof(待完善)if(ainstanceofPerson)alert('yes');十五、new操作符具體干了什么呢?1、創(chuàng)建一個(gè)空對象,并且this變量引用該對象,同時(shí)還繼承了該函數(shù)的原型。2、屬性和方法被加入到this引用的對象中。3、新創(chuàng)建的對象由this所引用,并且
34、最后隱式的返回thisovarobj=;obj._proto_=Btotype;Base.call(obj);十六、Javascript中,有一個(gè)函數(shù),執(zhí)行時(shí)對象查找時(shí),永遠(yuǎn)不會(huì)去查找原型,這個(gè)函數(shù)是?hasOwnProperty十七、JSON的了解?JSON(JavaScriptObjectNotation)是一種輕量級(jí)的數(shù)據(jù)交換格式。它是基于JavaScript的一個(gè)子集。數(shù)據(jù)格式簡單,易于讀寫,占用帶寬小age':'12','name':'back'|十八、js延遲加載的方式有哪些?defer和async、動(dòng)態(tài)創(chuàng)建DO
35、M方式(用得最多)、按需異步載入js十九、ajax是什么?二十、同步和異步的區(qū)別?二十一、如何解決跨域問題?jsonp、iframe、、window.postMessage、服務(wù)器上設(shè)置代理頁面二十二、模塊化怎么做?立即執(zhí)行函數(shù),不暴露私有成員varmodulel=(function()var_count=0;varm1=function();varm2=function();returnm1:m1,m2:m2;)();二十三、AMD(Modules/Asynchronous-Definition)、CMD(CommonModuleDefinition)規(guī)范區(qū)別?AMD是
36、RequireJS在推廣過程中對模塊定義的規(guī)范化產(chǎn)出。CMD是SeaJS在推廣過程中對模塊定義的規(guī)范化產(chǎn)出。對于依賴白模塊,AMD是提前執(zhí)行,CMD是延遲執(zhí)行。不過RequireJS從2.0開始,也改成可以延遲執(zhí)行(根據(jù)寫法不同,處理方式不同)。CMD推崇aslazyaspossible.CMD推崇依賴就近,AMD推崇依賴前置二十四、異步加載的方式有哪些?(1) defer,只支持IE(2) async:(3)創(chuàng)建script,插入到DOM中,加載完畢后callBack二十五、documen.write和innerHTML的區(qū)別document.write只能重繪整個(gè)頁面innerHTML可以
37、重繪頁面的一部分二十六、.call()和.apply()的區(qū)別?例子中用add來替換sub,add.call(sub,3,1)=add(3,1),所以運(yùn)行結(jié)果為:alert(4);注意:js中的函數(shù)其實(shí)是對象,函數(shù)名是對Function對象的引用。functionadd(a,b)alert(a+b);functionsub(a,b)alert(a-b);add.call(sub,3,1);二十七、Jquery與jQueryUI有啥區(qū)別?* jQuery是一個(gè)js庫,主要提供的功能是選擇器,屬性修改和事件綁定等等。* jQueryUI則是在jQuery的基礎(chǔ)上,利用jQuery的擴(kuò)展性,設(shè)計(jì)的插
38、件。提供了一些常用的界面元素,諸如對話框、拖動(dòng)行為、改變大小行為等等二十八、JQuery的源碼看過嗎?能不能簡單說一下它的實(shí)現(xiàn)原理?二十九、jquery中如何將數(shù)組轉(zhuǎn)化為json字符串,然后再轉(zhuǎn)化回來?jQuery中沒有提供這個(gè)功能,所以你需要先編寫兩個(gè)jQuery的擴(kuò)展:$.fn.stringifyArray=function(array)returnJSON.stringify(array)$.fn.parseArray=function(array)returnJSON.parse(array)然后調(diào)用:$("").stringifyArray(array)三十、針對
39、jQuery的優(yōu)化方法?* 基于Class的選擇性的性能相對于Id選擇器開銷很大,因?yàn)樾璞闅v所有DOM元素。* 頻繁操作的DOM,先緩存起來再操作。用Jquery的鏈?zhǔn)秸{(diào)用更好。比如:varstr=$("a").attr("href");* for(vari=size;i<arr.length;i+)可以讓循for循環(huán)每一次循環(huán)都查找了數(shù)組(arr)的.length屬性,在開始循環(huán)的時(shí)候設(shè)置一個(gè)變量來存儲(chǔ)這個(gè)數(shù)字,環(huán)跑得更快:for(vari=size,length=arr.length;i<length;i+)JavaScript中的作用域
40、與變量聲明提升?如何編寫高性能的Javascript那些操作會(huì)造成內(nèi)存泄漏?內(nèi)存泄漏指任何對象在您不再擁有或需要它之后仍然存在。0(沒有其他對象引垃圾回收器定期掃描對象,并計(jì)算引用了每個(gè)對象的其他對象的數(shù)量。如果一個(gè)對象的引用數(shù)量為用過該對象),或?qū)υ搶ο蟮奈┮灰檬茄h(huán)的,那么該對象的內(nèi)存即可回收。setTimeout的第一個(gè)參數(shù)使用字符串而非函數(shù)的話,會(huì)引發(fā)內(nèi)存泄漏。閉包、控制臺(tái)日志、循環(huán)(在兩個(gè)對象彼此引用且彼此保留時(shí),就會(huì)產(chǎn)生一個(gè)循環(huán))三十四、JQuery一個(gè)對象可以同時(shí)綁定多個(gè)事件,這是如何實(shí)現(xiàn)的?三十五、如何判斷當(dāng)前腳本運(yùn)行在瀏覽器還是node環(huán)境中?(阿里)通過判斷Global對
41、象是否為window,如果不為window,當(dāng)前腳本沒有運(yùn)行在瀏覽器中三十六、對Node的優(yōu)點(diǎn)和缺點(diǎn)提出了自己的看法?* (優(yōu)點(diǎn))因?yàn)镹ode是基于事件驅(qū)動(dòng)和無阻塞的,所以非常適合處理并發(fā)請求,因此構(gòu)建在Node上的代理服務(wù)器相比其他技術(shù)實(shí)現(xiàn)(如Ruby)的服務(wù)器表現(xiàn)要好得多。止匕外,與Node代理服務(wù)器交互的客戶端代碼是由javascript語言編寫的,因此客戶端和服務(wù)器端都用同一種語言編寫,這是非常美妙的事情。* (缺點(diǎn))Node是一個(gè)相對新的開源項(xiàng)目,所以不太穩(wěn)定,它總是一直在變,而且缺少足夠多的第三方庫支持??雌饋?,就像是Ruby/Rails當(dāng)年的樣子。其它問題一、你有哪些性能優(yōu)化的方法?(看雅虎14條性能優(yōu)化原則)。(1) 減少http請求次數(shù):CSSSprites,JS、CSS源碼壓縮、圖片大小控制合適;網(wǎng)頁Gzip,CDN托管,data緩存,圖片服務(wù)器。(2)前端模板JS+數(shù)據(jù),減少由于HTML標(biāo)簽導(dǎo)致的帶寬浪費(fèi),前端用變量保存AJ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)設(shè)計(jì)中的人機(jī)工程學(xué)應(yīng)用
- 工業(yè)自動(dòng)化技術(shù)智能制造與生產(chǎn)效率提升
- 工業(yè)設(shè)計(jì)與人類健康的關(guān)系探討
- 工業(yè)設(shè)計(jì)與產(chǎn)品造型創(chuàng)新
- 工作中的溝通協(xié)調(diào)技巧培訓(xùn)
- 工業(yè)風(fēng)格建筑的設(shè)計(jì)與實(shí)踐
- 工作場所的多元溝通方式
- 工程填方區(qū)的防護(hù)性綠化技術(shù)探索與實(shí)踐
- 工程機(jī)械設(shè)計(jì)中的材料選擇與仿真
- 工程勞務(wù)費(fèi)用合理計(jì)算與評(píng)估
- FZ/T 93056-1999變形絲用筒管技術(shù)條件
- 跨區(qū)域就讀證明
- 國開期末考試《建筑制圖基礎(chǔ)》機(jī)考試題及答案(第D-1套)
- SA8000-2014社會(huì)責(zé)任績效委員會(huì)SPT組織架構(gòu)、職責(zé)和定期檢討及評(píng)審會(huì)議記錄
- 學(xué)術(shù)論文寫作規(guī)范與技巧課件
- 生物高中-基于大數(shù)據(jù)分析的精準(zhǔn)教學(xué)課件
- 焊接熱處理工藝卡
- 公共政策學(xué)(第三版)-課件
- 齊魯醫(yī)學(xué)Lisfranc-損傷
- 大型鋼網(wǎng)架整體提升施工工法
- 干熄焦?fàn)t內(nèi)固_氣流動(dòng)與傳熱數(shù)值模擬畢業(yè)論文
評(píng)論
0/150
提交評(píng)論