下載完整面試題文件及答案:
https://www.duyunwl.cn/2019/03/08/java面試題大全/
接下來通過在
$(function(){
);
8、你為什么要使用jquery?
【參考】
答:因為jQuery是輕量級的框架,大小不到30kb,它有強大的選擇器,出色的DOM操作的封裝,有可靠的事件處理機制(jQuery在處理事件綁定的時候相當?shù)目煽?,完善的ajax(它的ajax封裝的非常的好,不需要考慮復雜瀏覽器的兼容性和XMLHttpRequest對象的創(chuàng)建和使用的問題。)出色的瀏覽器的兼容性。而且支持鏈式操作,隱式迭代。行為層和結(jié)構(gòu)層的分離,還支持豐富的插件,jquery的文檔也非常的豐富。
9、你覺得jquery有哪些好處?
答案同上
10、你使用jquery遇到過哪些問題,你是怎么解決的?
【參考】
答:這個答案是開發(fā)的,看你是否有相關(guān)的項目經(jīng)驗。例前臺拿不到值,JSON可是出現(xiàn)的錯誤(多了一個空格等)這編譯是不會報錯的jquery庫與其他庫沖突:
1>如果其他庫在jquery庫之前導入的話
①我們可以通過jquery.noconflict()將變量的$的控制權(quán)過度給其他庫
②自定義快捷鍵,用一個變量接住jquery.noconflict()
③通過函數(shù)傳參
2>如果jquery庫在其他庫之前導入就直接使用jquery今天在處理一個數(shù)據(jù)問題時,發(fā)現(xiàn)jQuery.ajax()方法返回的值一直有問題,清除緩存后數(shù)據(jù)無誤,多次測試后發(fā)現(xiàn)返回的值都是之前的值,并且一直未執(zhí)行url(后臺為JAVA,設置斷點一直未進入)。在網(wǎng)上查找下,發(fā)現(xiàn)是未設置type的原因。如果沒設置jQuery.ajax的type="Post",那么ajax就會默認type="Get",這就會導致之前數(shù)據(jù)被緩存起來。加上type="Post",問題解決!
11、你知道jquery中的選擇器嗎,請講一下有哪些選擇器?
【參考】
jQuery中的選擇器大致分為:基本選擇器,層次選擇器,過濾選擇器,表單選擇器
12、jquery中的選擇器和css中的選擇器有區(qū)別嗎?
【參考】
jQuery選擇器支持CSS里的選擇器,jQuery選擇器可用來添加樣式和添加相應的行為CSS中的選擇器是只能添加相應的樣式
13、你覺得jquery中的選擇器有什么優(yōu)勢?
【參考】
簡單的寫法$('ID')來代替document.getElementById()函數(shù)支持CSS1到CSS3選擇器完善的處理機制(就算寫錯了id也不會報錯)
14、你在使用選擇器的時候有有沒有什么覺得要注意的地方?
【參考】
1)選擇器中含有".","#","["等特殊字符的時候需要進行轉(zhuǎn)譯
2)屬性選擇器的引號問題
3)選擇器中含有空格的注意事項
15、jquery對象和dom對象是怎樣轉(zhuǎn)換的?
【參考】
答:jquery轉(zhuǎn)DOM對象:jQuery對象是一個數(shù)組對象,可以通過[index]的豐富得到相應的DOM對象還可以通過get[index]去得到相應的DOM對象。DOM對象轉(zhuǎn)jQuery對象:$(DOM對象)
16、你是如何使用jquery中的ajax的?
【參考】
如果是一些常規(guī)的ajax程序的話,使用load(),$.get(),$.post(),就可以搞定了,一般我會使用的是$.post()方法。如果需要設定beforeSend(提交前回調(diào)函數(shù)),error(失敗后處理),success(成功后處理)及complete(請求完成后處理)回調(diào)函數(shù)等,這個時候我會使用$.ajax()
17、你覺得jquery中的ajax好用嗎,為什么?
【參考】
答:好用的。因為jQuery提供了一些日常開發(fā)中夙瑤的快捷操作,例load,ajax,get,post等等,所以使用jQuery開發(fā)ajax將變得極其簡單,我們就可以集中精力在業(yè)務和用戶的體驗上,不需要去理會那些繁瑣的XMLHttpRequest對象了。
18、jquery中$.get()提交和$.post()提交有區(qū)別嗎?
1)$.get()方法使用GET方法來進行異步請求的。$.post()方法使用POST方法來進行異步請求的。
2)get請求會將參數(shù)跟在URL后進行傳遞,而POST請求則是作為HTTP消息的實體內(nèi)容發(fā)送給Web服務器的,這種傳遞是對用戶不可見的。
3)get方式傳輸?shù)臄?shù)據(jù)大小不能超過2KB而POST要大的多
4)GET方式請求的數(shù)據(jù)會被瀏覽器緩存起來,因此有安全問題。
19、jquery中的load方法一般怎么用的?
【參考】
答:load方法一般在載入遠程HTML代碼并插入到DOM中的時候用通常用來從Web服務器上獲取靜態(tài)的數(shù)據(jù)文件。
如果要傳遞參數(shù)的話,可以使用$.get()或$.post()
20、在jquery中你是如何去操作樣式的?
【參考】
addClass()來追加樣式
removeClass()來刪除樣式
toggle()來切換樣式
21、簡單的講敘一下jquery是怎么處理事件的,你用過哪些事件?
【參考】
答:首先去裝載文檔,在頁面家在完畢后,瀏覽器會通過javascript為DOM元素添加事件。
22、你使用過jquery中的動畫嗎,是怎樣用的?
【參考】
答:使用過。hide()和show()同時修改多個樣式屬性。像高度,寬度,不透明度。fadeIn()和fadeOut() fadeTo()只改變不透明度slideUp()和slideDown() slideToggle()只改變高度animate()屬于自定義動畫的方法。
23、你使用過jquery中的插件嗎?
【參考】
答:看個人的實力和經(jīng)驗來回答了。
24、你一般用什么去提交數(shù)據(jù),為什么?
【參考】
答:一般我會使用的是$.post()方法。如果需要設定beforeSend(提交前回調(diào)函數(shù)),error(失敗后處理),success(成功后處理)及complete(請求完成后處理)回調(diào)函數(shù)等,這個時候我會使用$.ajax()
25、在jquery中引入css有幾種方式?
【參考】
答:四種行內(nèi)式,內(nèi)嵌式,導入式,鏈接式
26、你在jquery中使用過哪些插入節(jié)點的方法,它們的區(qū)別是什么?
【參考】
答:append(),appendTo(),prepend(),prependTo(),after(),insertAfter()before(),insertBefore()大致可以分為內(nèi)部追加和外部追加
append()表式向每個元素內(nèi)部追加內(nèi)容。
appendTo()表示講所有的元素追加到指定的元素中。例$(A)appendTo(B)是將A追加到B中下面的方法解釋類似
27、你使用過包裹節(jié)點的方法嗎,包裹節(jié)點有方法有什么好處?
【參考】
答: wrapAll(),wrap(), wrapInner()需要在文檔中插入額外的結(jié)構(gòu)化標記的時候可以使用這些包裹的方法應為它不會帛畫原始文檔的語義
28、jquery中如何來獲取或和設置屬性?
【參考】
jQuery中可以用attr()方法來獲取和設置元素屬性
removeAttr()方法來刪除元素屬性
29、如何來設置和獲取HTML和文本的值?
【參考】
html()方法類似于innerHTML屬性可以用來讀取或者設置某個元素中的HTML內(nèi)容注意:html()可以用于xhtml文檔不能用于xml文檔
text()類似于innerText屬性可以用來讀取或設置某個元素中文本內(nèi)容。
val()可以用來設置和獲取元素的值
30、你jquery中有哪些方法可以遍歷節(jié)點?
【參考】
children()取得匹配元素的子元素集合,只考慮子元素不考慮后代元素
next()取得匹配元素后面緊鄰的同輩元素
prev()取得匹配元素前面緊鄰的同輩元素
siblings()取得匹配元素前后的所有同輩元素
closest()取得最近的匹配元素find()取得匹配元素中的元素集合包括子代和后代
31、子元素選擇器和后代選擇器元素有什么區(qū)別?
【參考】
答:子代元素是找子節(jié)點下的所有元素,后代元素是找子節(jié)點或子節(jié)點的子節(jié)點中的元素
32、在jquery中可以替換節(jié)點嗎?
【參考】
答:可以在jQuery中有兩者替換節(jié)點的方式replaceWith()和replaceAll()例如在
hao are you
替換成
I am fine
$('p').replaceWith('I am fine');replaceAll與replaceWith的用法前后調(diào)換一下即可。
33、你覺得beforeSend方法有什么用?
【參考】
答:發(fā)送請求前可以修改XMLHttpRequest對象的函數(shù),在beforeSend中如果返回false可以取消本次的Ajax請求。XMLHttpRequest對象是唯一的參數(shù)所以在這個方法里可以做驗證
34、siblings()方法和$('prev~div')選擇器是一樣的嘛?
【參考】
答: $('prev~div')只能選擇'#prev'元素后面的同輩
元素而siblings()方法與前后的文職無關(guān),只要是同輩節(jié)點就都能匹配。
35、你在ajax中使用過JSON嗎,你是如何用的?
【參考】
答:使用過,在$.getJSON()方法的時候就是。因為$.getJSON()就是用于加載JSON文件的
36、有哪些查詢節(jié)點的選擇器?
【參考】
答:我在公司使用過
:first查詢第一個,
:last查詢最后一個,
:odd查詢奇數(shù)但是索引從0開始
:even查詢偶數(shù),
:eq(index)查詢相等的,
:gt(index)查詢大于index的,
:lt查詢小于index
:header選取所有的標題等
37、nextAll()能替代$('prev~siblindgs')選擇器嗎?
【參考】
答:能。使用nextAll()和使用$('prev~siblindgs')是一樣的
38、jQuery中有幾種方法可以來設置和獲取樣式
答:addClass()方法,attr()方法
39、$(document).ready()方法和window.onload有什么區(qū)別?
【參考】
答:兩個方法有相似的功能,但是在實行時機方面是有區(qū)別的。
1)window.onload方法是在網(wǎng)頁中所有的元素(包括元素的所有關(guān)聯(lián)文件)完全加載到瀏覽器后才執(zhí)行的。
2)$(document).ready()方法可以在DOM載入就緒時就對其進行操縱,并調(diào)用執(zhí)行綁定的函數(shù)。
40、jQuery是如何處理緩存的?
【參考】
答:要處理緩存就是禁用緩存.
1)通過$.post()方法來獲取數(shù)據(jù),那么默認就是禁用緩存的。
2)通過$.get()方法來獲取數(shù)據(jù),可以通過設置時間戳來避免緩存??梢栽赨RL后面加上+(+new Date)例$.get('ajax.xml?'+(+new Date),function () {//內(nèi)容});
3)通過$.ajax方法來獲取數(shù)據(jù),只要設置cache:false即可。
41、$.getScript()方法和$.getJson()方法有什么區(qū)別?
【參考】
1)$.getScript()方法可以直接加載.js文件,并且不需要對javascript文件進行處理,javascript文件會自動執(zhí)行。
2)$.getJson()是用于加載JSON文件的,用法和$.getScript()
42、你讀過哪些有關(guān)于jQuery的書嗎?
【參考】
《jquery基礎教程》《jquery實戰(zhàn)》《鋒利的jquery》《巧用jquery》《jQuery用戶界面庫學習指南》等
43、$("#msg").text();和$("#msg").text("new content");有什么區(qū)別?
【參考】
1 $("#msg").text()是返回id為msg的元素節(jié)點的文本內(nèi)容
2 $("#msg").text("new content");是將“new content”作為普通文本串寫入id為msg的元素節(jié)點內(nèi)容中,頁面顯示粗體的new content
44、radio單選組的第二個元素為當前選中值,該怎么去取?
【參考】
答: $('input[name=items]').get(1).checked = true;
45、選擇器中id,class有什么區(qū)別?
【參考】
答:在網(wǎng)頁中每個id名稱只能用一次,class可以允許重復使用
46、你使用過哪些數(shù)據(jù)格式,它們各有什么特點?
【參考】
答: HTML格式,JSON格式,javascript格式,XML格式
1)HTML片段提供外部數(shù)據(jù)一般來說是最簡單的。
2)如果數(shù)據(jù)需要重用,而且其他應用程序也可能一次受到影響,那么在性能和文件大小方面具有優(yōu)勢的JSON通常是不錯的選擇。
3)而當遠程應用程序未知時,XML則能夠為良好的互操作性提供最可靠的保證。
47、jQuery能做什么?
【參考】
1)獲取頁面的元素
2)修改頁面的外觀
3)改變頁面大的內(nèi)容
4)響應用戶的頁面操作
5)為頁面添加動態(tài)效果
6)無需刷新頁面,即可以從服務器獲取信息
7)簡化常見的javascript任務
48、在ajax中data主要有幾種方式?
【參考】
三種,html拼接的,json數(shù)組,form表單經(jīng)serialize()序列化的。
49、jQuery中的hover()和toggle()有什么區(qū)別?
【參考】
hover()和toggle()都是jQuery中兩個合成事件。hover()方法用于模擬光標懸停事件。toggle()方法是連續(xù)點擊事件。
50、你知道jQuery中的事件冒泡嗎,它是怎么執(zhí)行的,何如來停止冒泡事件?
【參考】
答:知道,事件冒泡是從里面的往外面開始觸發(fā)。在jQuery中提供了stopPropagation()方法可以停止冒泡。
51、例如單擊超鏈接后會自動跳轉(zhuǎn),單擊"提交"按鈕后表單會提交等,有時候我想阻止這些默認的行為,該怎么辦?
【參考】
可以用event.preventDefault()或在事件處理函數(shù)中返回false,即return false;
52、jquery表單提交前有幾種校驗方法?分別為??
【參考】
formData:返回一個數(shù)組,可以通過循環(huán)調(diào)用來校驗
jaForm:返回一個jQuery對象,所有需要先轉(zhuǎn)換成dom對象
fieldValue:返回一個數(shù)組beforeSend()
53、在jquery中你有沒有編寫過插件,插件有什么好處?你編寫過那些插件?它應該注意那些?
【參考】
插件的好處:對已有的一系列方法或函數(shù)的封裝,以便在其他地方重新利用,方便后期維護和提高開發(fā)效率
插件的分類:封裝對象方法插件、封裝全局函數(shù)插件、選擇器插件
注意的地方:
1)插件的文件名推薦命名為jquery.[插件名].js,以免和其他的javaScript庫插件混淆。
2)所有的對象方法都應當附加到jQuery.fn對象上,而所有的全局函數(shù)都應當附加到jQuery對象本身上。
3)插件應該返回一個jQuery對象,以保證插件的可鏈式操作。
4)避免在插件內(nèi)部使用$作為jQuery對象的別名,而應使用完整的jQuery來表示,這樣可以避免沖突或使用閉包來避免。
5)所有的方法或函數(shù)插件,都應當一分好結(jié)尾,否則壓縮的時候可能出現(xiàn)問題。在插件頭部加上分號,這樣可以避免他人的不規(guī)范代碼給插件帶來影響。
6)在插件中通過$.extent({})封裝全局函數(shù),選擇器插件,擴展已有的object對象
7)通過$.fn.extend({})封裝對象方法插件
54、怎樣給jquery動態(tài)附加新的元素?那么怎樣給新生成的元素綁定事件呢?
【參考】
jQuery的html()可以給現(xiàn)在元素附加新的元素直接在元素還未生成前就綁定肯定是無效的,因為所綁定的元素目前根本不存在。所以我們可以通過live和livequery來動態(tài)綁定事件
55、IE與FireFox腳本兼容性問題
(1) window.event:
表示當前的事件對象,IE有這個對象,F(xiàn)F沒有,F(xiàn)F通過給事件處理函數(shù)傳遞事件對象
(2)獲取事件源
IE用srcElement獲取事件源,而FF用target獲取事件源
(3)添加,去除事件
IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)
FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)
(4)獲取標簽的自定義屬性
IE:div1.value或div1[“value”]
FF:可用div1.getAttribute(“value”)
(5) document.getElementByName()和document.all[name]
IE;document.getElementByName()和document.all[name]均不能獲取div元素
FF:可以
(6) input.type的屬性
IE:input.type只讀
FF:input.type可讀寫
(7) innerText textContent outerHTML
IE:支持innerText, outerHTML
FF:支持textContent
(8)是否可用id代替HTML元素
IE:可以用id來代替HTML元素
FF:不可以
這里只列出了常見的,還有不少
56、css+div的優(yōu)勢
Div+CSS標準的優(yōu)點:
1.大大縮減頁面代碼,提高頁面瀏覽速度,縮減帶寬成本;
2.結(jié)構(gòu)清晰,容易被搜索引擎搜索到,天生優(yōu)化了seo
3.縮短改版時間。只要簡單的修改幾個CSS文件就可以重新設計一個有成百上千頁面的站點。
4.強大的字體控制和排版能力。CSS控制字體的能力比糟糕的FONT標簽好多了,有了CSS,我們不再需要用FONT標簽或者透明的1 px GIF圖片來控制標題,改變字體顏色,字體樣式等等。
5.CSS非常容易編寫。你可以象寫html代碼一樣輕松地編寫CSS。
6.提高易用性。使用CSS可以結(jié)構(gòu)化HTML
7.可以一次設計,隨處發(fā)布。
更好的控制頁面布局
57、DIV和Span的區(qū)別?
DIV(division)是一個塊級元素,可以包含段落、標題、表格,乃至諸如章節(jié)、摘要和備注等。而SPAN是行內(nèi)元素,SPAN的前后是不會換行的,它沒有結(jié)構(gòu)的意義,純粹是應用樣式,當其他行內(nèi)元素都不合適時,可以使用SPAN
在HTML視圖中工作時,可以在
內(nèi)編輯文本,將某些字包含在元素內(nèi),以強調(diào)那些字。與
不同,和它周圍的文本一起移動
58、css是什么
層疊樣式表,用來進行頁面樣式設計,美化頁面顯示。
59、xml有哪些解析技術(shù),有什么區(qū)別?
有DOM,SAX,STAX等
DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個文檔裝入內(nèi)存,適合對XML的隨機訪問SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結(jié)束,或者標簽開頭與標簽結(jié)束時,它會觸發(fā)一個事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問
60、ajax的工作原理?
Ajax基本上就是把JavaScript技術(shù)和XMLHttpRequest對象放在Web表單和服務器之間。當用戶填寫表單時,數(shù)據(jù)發(fā)送給一些JavaScript代碼而不是直接發(fā)送給服務器。相反,JavaScript代碼捕獲表單數(shù)據(jù)并向服務器發(fā)送請求。同時用戶屏幕上的表單也不會閃爍、消失或延遲。換句話說,JavaScript代碼在幕后發(fā)送請求,用戶甚至不知道請求的發(fā)出。更好的是,請求是異步發(fā)送的,就是說JavaScript代碼(和用戶)不用等待服務器的響應。因此用戶可以繼續(xù)輸入數(shù)據(jù)、滾動屏幕和使用應用程序。
然后,服務器將數(shù)據(jù)返回JavaScript代碼(仍然在Web表單中),后者決定如何處理這些數(shù)據(jù)。它可以迅速更新表單數(shù)據(jù),讓人感覺應用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數(shù)據(jù)。JavaScript代碼甚至可以對收到的數(shù)據(jù)執(zhí)行某種計算,再發(fā)送另一個請求,完全不需要用戶干預!這就是XMLHttpRequest的強大之處。它可以根據(jù)需要自行與服務器進行交互,用戶甚至可以完全不知道幕后發(fā)生的一切。結(jié)果就是類似于桌面應用程序的動態(tài)、快速響應、高交互性的體驗。
61、HTML的form提交之前如何驗證數(shù)值文本框的內(nèi)容全部為數(shù)字?否則的話提示用戶并終止提交?
function chkForm(this)
{
var value = thist.d1.value;
var len = value.length;
for(var i=0;i
{
if(value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert("含有非數(shù)字字符");return false;
}
}
return true;
}
62、請寫出用于校驗HTML文本框中輸入的內(nèi)容全部為數(shù)字的javascript代碼
function chkNumber(eleText)
{
var value = eleText.value;
var len = value.length;
for(var i=0;i
{
if(value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert("含有非數(shù)字字符");
eleText.focus();
break;
}
}
}
除了寫完代碼,還應該在網(wǎng)頁上寫出實驗步驟和在代碼中加入實現(xiàn)思路,讓面試官一看就明白你的意圖和檢查你的結(jié)果。
63、xml有哪些解析技術(shù)?區(qū)別是什么?【北京科瑞明】
答:
有DOM,SAX,STAX等
DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個文檔裝入內(nèi)存,適合對XML的隨機訪問SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結(jié)束,或者標簽開頭與標簽結(jié)束時,它會觸發(fā)一個事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問
STAX:Streaming API for XML (StAX)
講解這些區(qū)別是不需要特別去比較
64、在javascript中設置定時調(diào)用myfun()函數(shù)(周期為1秒)的代碼是?
setInterval(myfun(),1000)
65、XML文檔定義有幾種形式?它們之間有何本質(zhì)區(qū)別?解析XML文檔有哪幾種方式?
兩種形式dtd、schema,
本質(zhì)區(qū)別:schema本身是xml的,可以被XML解析器解析(這也是從DTD上發(fā)展schema的根本目的)。
解析的中有:DOM、SAX、JDOM、DOM4J等。
DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個文檔裝入內(nèi)存,適合對XML的隨機訪問
SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結(jié)束,或者標簽開頭與標簽結(jié)束時,它會觸發(fā)一個事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問。
66、HTTP請求返回的狀態(tài)碼有哪些?分別有什么含義?
3XX:重定向,這類狀態(tài)碼代表需要客戶端采取進一步的操作才能完成請求。通常,這些狀態(tài)碼用來重定向,后續(xù)的請求地址(重定向目標)在本次響應的Location域中指明。
302:請求的資源現(xiàn)在臨時從不同的URI響應請求
303:對應當前請求的響應可以在另一個URI上被找到,而且客戶端應當采用GET的方式訪問那個資源。
4XX:請求錯誤,這類的狀態(tài)碼代表了客戶端看起來可能發(fā)生了錯誤,妨礙了服務器的處理。
像,403、404、405錯誤
5XX:服務器錯誤,這類狀態(tài)碼代表了服務器在處理請求的過程中有錯誤或者異常狀態(tài)發(fā)生,也有可能是服務器意識到以當前的軟硬件資源無法完成對請求的處理。
像,500、501、502等錯誤
67、二叉樹遍歷有幾種方法【中恒互聯(lián)】
有3種方法。先序遍歷、中序遍歷、后序遍歷
68、用JavaScript寫一個小時鐘,網(wǎng)頁內(nèi)容如下:
2013年12月23日12:23:30
每秒鐘跳動一次
參考:
document.write('
');
function showTime(){
var time = new Date();
document.getElementById("time").innerHTML=time.getFullYear()+"年"+(time.getMonth()+1)+"月"+time.getDate()+"日"+time.getHours()+":"+time.getMinutes()+":"+time.getSeconds();
}
setInterval(showTime,500);
69、JSON和XML的優(yōu)缺點
【參考答案】
1)在可讀性方面,JSON和XML的數(shù)據(jù)可讀性基本相同。JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規(guī)范的標簽形式,很難分出勝負。
2)在可擴展性方面,XML天生有很好的擴展性,JSON當然也有,沒有什么是XML能擴展,JSON不能的。
3)在編碼難度方面,XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了。
4)在解碼難度方面,XML的解析得考慮子節(jié)點父節(jié)點,讓人頭昏眼花,而JSON的解析難度幾乎為0。這一點XML輸?shù)恼媸菦]話說。
5)在流行度方面,XML已經(jīng)被業(yè)界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領(lǐng)域,未來的發(fā)展一定是XML讓位于JSON。到時Ajax應該變成Ajaj(Asynchronous Javascript and JSON)了。
6)JSON和XML同樣擁有豐富的解析手段。
7)JSON相對于XML來講,數(shù)據(jù)的體積小。
8)JSON與JavaScript的交互更加方便。
9)JSON對數(shù)據(jù)的描述性比XML較差。
10)JSON的速度要遠遠快于XML。
下載完整面試題文件及答案:
https://www.duyunwl.cn/2019/03/08/java面試題大全/