1.什麼是JavaScript?(這是基本題,對不少程序員來講也是送分題!)javascript
JavaScript是客戶端和服務器端腳本語言,能夠插入到HTML頁面中,而且是目前較熱門的Web開發語言。同時,JavaScript也是面向對象編程語言。
相似的基本題目還包括:JavaScript都有哪些類型?JavaScript是誰發明的?...html
2.列舉Java和JavaScript之間的區別?java
Java是一門十分完整、成熟的編程語言。相比之下,JavaScript 是一個能夠被引入HTML頁面的編程語言。這兩種語言並不徹底相互依賴,而是針對不一樣的意圖而設計的。Java是一種面向對象編程(OOPS)或結構化編程語言,相似的如C ++或C,而JavaScript是客戶端腳本語言,它被稱爲非結構化編程。 node
3.JavaScript 和 ASP 腳本相比,哪一個更快? jquery
JavaScript更快。JavaScript是一種客戶端語言,所以它不須要Web服務器的協助來執行。另外一方面,ASP是服務器端語言,所以老是比JavaScript慢。值得注意的是,Javascript如今也可用於服務器端語言(nodejs)。程序員
4.什麼是負無窮大? web
負無窮大是JavaScript中的一個數字,能夠經過將負數除以零來獲得。ajax
5.如何將JavaScript代碼分解成幾行嗎?編程
在字符串語句中能夠經過在第一行末尾使用反斜槓「」來完成。
例:document.write("This is a program")
若是不是在字符串語句中更改成新行,那麼javaScript會忽略行中的斷點。
例:var x=1, y=2, z= x+y
上面的代碼是完美的,但並不建議這樣作,由於阻礙了調試。json
6.什麼是未聲明和未定義的變量?
未聲明的變量是程序中不存在且未聲明的變量。若是程序嘗試讀取未聲明變量的值,則會遇到運行時錯誤。
未定義的變量是在程序中聲明但還沒有給出任何值的變量。若是程序嘗試讀取未定義變量的值,則返回未定義的值。
7.什麼是全局變量?這些變量如何聲明,使用全局變量有哪些問題?
全局變量是整個代碼長度可用的變量,也就是說這些變量沒有任何做用域。var關鍵字用於聲明局部變量或對象。若是省略var關鍵字,則聲明一個全局變量。
例:// Declare a global globalVariable = 「Test」
使用全局變量所面臨的問題是本地和全局變量名稱的衝突。此外,很難調試和測試依賴於 全局變量的代碼。
8.解釋JavaScript中定時器的工做?若是有,也能夠說明使用定時器的缺點?
定時器用於在設定的時間執行一段代碼,或者在給定的時間間隔內重複該代碼。這經過使用函數setTimeout,setInterval和clearInterval來完成。
setTimeout(function,delay)函數用於啓動在所述延遲以後調用特定功能的定時器。
setInterval(function,delay)函數用於在提到的延遲中重複執行給定的功能,只有在取消時才中止。
clearInterval(id)函數指示定時器中止。
定時器在一個線程內運行,所以事件可能須要排隊等待執行。
9.ViewState和SessionState有什麼區別?
「ViewState」特定於會話中的頁面。
「SessionState」特定於可在Web應用程序中的全部頁面上訪問的用戶特定數據。
加粗文字10.什麼是===運算符?
===被稱爲嚴格等式運算符,當兩個操做數具備相同的值而沒有任何類型轉換時,該運算符返回true。
11.JavaScript中的循環結構都有什麼?
for、while、do-while loops
12.如何在JavaScript中將base字符串轉換爲integer?
parseInt() 函數解析一個字符串參數,並返回一個指定基數的整數。parseInt()將要轉換的字符串做爲其第一個參數,第二個參數是給定字符串的基礎。爲了將4F(基數16)轉換爲整數,所使用的代碼是:parseInt("4F", 16)
13.說明「==」和「===」之間的區別?
「==」僅檢查值相等,而「===」是一個更嚴格的等式斷定,若是兩個變量的值或類型不一樣,則返回false。
14.3+2+「7」的結果是什麼?
因爲3和2是整數,它們將直接相加。因爲7是一個字符串,它將會被直接鏈接,因此結果將是57。
15.說明如何檢測客戶端機器上的操做系統?
爲了檢測客戶端機器上的操做系統,應使用avigator.appVersion 字符串(屬性)。
16.Javascript中的NULL是什麼意思?
NULL用於表示無值或無對象。它意味着沒有對象或空字符串,沒有有效的布爾值,沒有 數值和數組對象。
17.delete操做符的功能是什麼?
delete操做符用於刪除程序中的全部變量或對象,但不能刪除使用 VAR關鍵字聲明的變量。
18.JavaScript中有哪些類型的彈出框?
Alert、Confirm and Prompt
19.Void(0)怎麼用?
Void(0)用於防止頁面刷新,並在調用時傳遞參數「zero」。 Void(0)用於調用另外一種方法而不刷新頁面。
20.如何強制頁面加載JavaScript中的其餘頁面?
必須插入如下代碼才能達到預期效果:
21.escape字符是用來作什麼的?
使用特殊字符(如單引號,雙引號,撇號和&符號)時,將使用轉義字符(反斜槓)。在字符前放置反斜槓,使其顯示。
例:
22.什麼是JavaScript Cookie?
Cookie是用來存儲計算機中的小型測試文件,當用戶訪問網站以存儲他們須要的信息時,它將被建立。
23.解釋JavaScript中的pop()方法?
pop()方法與shift()方法相似,但不一樣之處在於Shift方法在數組的開頭工做。此外,pop()方法將最後一個元素從給定的數組中取出並返回。而後改變被調用的數組。
例:
var cloths = [「Shirt」, 「Pant」, 「TShirt」];
cloths.pop();
//Now cloth becomes Shirt,Pant
24.在JavaScript中使用innerHTML的缺點是什麼?
若是在JavaScript中使用innerHTML,缺點是:
1)內容隨處可見;
2)不能像「追加到innerHTML」同樣使用;
3)即便你使用+ = like「innerHTML = innerHTML +'html'」舊 的內容仍然會被html替換;
4)整個innerHTML內容被從新解析並構建成元素,所以它的速度要慢得多;
5)innerHTML不提供驗證,所以咱們可能會在文檔中插入有效的和破壞性的HTML並將其中斷。
25.break和continue語句的做用?
break語句從當前循環中退出。
continue語句繼續下一個循環語句。
26.在JavaScript中,dataypes的兩個基本組是什麼?
Primitive
Reference types
原始類型是數字和布爾數據類型。引用類型是更復雜的類型,如字符串和日期。
27.如何建立通用對象?
通用對象能夠建立爲:
var I = new object();
28.operator類型用來作什麼?
"Typeof"是一個運算符,用於返回變量類型的字符串描述。
29.哪些關鍵字用於處理異常?
try... Catch-finally用於處理JavaScript中的異常。
30.JavaScript中不一樣類型的錯誤有幾種?
有三種類型的錯誤:
Load time errors:該錯誤發生於加載網頁時,例如出現語法錯誤等情況,稱爲加載時間 錯誤,而且會動態生成錯誤。
Run time errors:因爲在HTML 語言中濫用命令而致使的錯誤。
Logical Errors:這是因爲在具備不一樣操做的函數上執行了錯誤邏輯而發生的錯誤。
31.在JavaScript中使用的Push方法是什麼?
push方法用於將一個或多個元素添加或附加到數組的末尾。使用這種方法,能夠經過傳遞多個參數來附加多個元素。
32.什麼是JavaScript中的unshift方法?
Unshift方法就像在數組開頭工做的push方法。該方法用於將一個或多個元素添加到數組的開頭。
33.對象屬性如何分配?
屬性按如下方式分配給對象:
obj["class"] = 12或obj.class = 12
34.解釋window.onload和onDocumentReady?
在載入頁面的全部信息以前,不運行onload函數。這致使在執行任何代碼以前會出現延遲。
onDocumentReady在加載DOM以後加載代碼。這容許早期的代碼操縱。
35.你將如何解釋JavaScript中的閉包?何時使用?
Closure是與函數返回時保留在內存中的函數相關的本地聲明變量。
36.一個值如何附加到數組?
能夠以給定的方式將值附加到數組:
arr[arr.length]=value
37.解釋for-in循環?
for-in循環用於循環對象的屬性。
for-in循環的語法是:
在每次循環中,來自對象的一個屬性與變量名相關聯,循環繼續,直到對象的全部屬性都 被耗盡。
38.描述JavaScript中的匿名函數?
被聲明爲沒有任何命名標識符的函數被稱爲匿名函數。通常來講,匿名函數在聲明後沒法訪問。
匿名函數聲明:
39. .call()和.apply()之間有什麼區別?
函數.call()和.apply()在使用上很是類似,只是有一點區別。當程序員知道函數參數的編號時,使用.call(),由於它們必須在調用語句中被說起爲參數。另外一方面,當不知道數字時使用.apply(),函數.apply()指望參數爲數組。.call()和.apply()之間的基本區別在於將參數傳遞給函數。它們的用法能夠經過給定的例子進行說明。
40.定義事件冒泡?
JavaScript容許DOM元素嵌套在一塊兒。在這種狀況下,若是單擊子級的處理程序,父級的處理程序也將執行一樣的工做。
41.什麼樣的布爾運算符能夠在JavaScript中使用?
「And」運算符(&&),'Or'運算符(||)和'Not'運算符(!)能夠在JavaScript中使用。
*運算符沒有括號。
42.在web-garden和web-farm之間有何不一樣?
web-garden和web-farm都是網絡託管系統。惟一的區別是web-garden是在單個服務器中包含許多處理器的設置,而web-farm是使用多個服務器的較大設置。
43.如何分配對象屬性?
將屬性分配給對象的方式與賦值給變量值相同。例如,表單對象的操做值如下列方式分配爲「submit」:Document.form.action =「submit」
44.在JavaScript中讀取和寫入文件的方法是什麼?
能夠經過使用JavaScript擴展(從JavaScript編輯器運行),打開文件的示例來完成:
fh=fopen(getScriptPath(), 0)
45.在JavaScript中如何使用DOM?
DOM表明文檔對象模型,而且負責文檔中各類對象的相互交互。DOM是開發網頁所必需的,其中包括諸如段落,連接等對象。能夠操做這些對象以包括添加或刪除等操做,DOM還須要向網頁添加額外的功能。除此以外,API的使用比其餘更有優點。
46.JavaScript中如何使用事件處理程序?
事件是由用戶生成活動(例如單擊連接或填寫表單)致使的操做。須要一個事件處理程序來管理全部這些事件的正確執行。事件處理程序是對象的額外屬性。此屬性包括事件的名稱以及事件發生時採起的操做。
47.解釋延遲腳本在JavaScript中的做用?
默認狀況下,在頁面加載期間,HTML代碼的解析將暫停,直到腳本中止執行。這意味着,若是服務器速度較慢或者腳本特別沉重,則會致使網頁延遲。在使用Deferred時,腳本會延遲執行直到HTML解析器運行。這減小了網頁加載時間,而且它們的顯示速度更快。
48.JavaScript中的各類功能組件是什麼?
JavaScript中的不一樣功能組件是:
First-class函數:JavaScript中的函數被用做第一類對象。這一般意味着這些函數能夠做爲參數傳遞給其餘函數,做爲其餘函數的值返回,分配給變量,也能夠存儲在數據結構中。
嵌套函數:在其餘函數中定義的函數稱爲嵌套函數。
49.解釋unshift()方法?
該方法在數組啓動時起做用,與push()不一樣。它將所需數量的元素添加到數組的頂部。
例如:
輸出以下所示:[「joseph」,「Jane」, 「charlie」, 「john」]
50.decodeURI()和encodeURI()是什麼?
EncodeURl()用於將URL轉換爲十六進制編碼。而DecodeURI()用於將編碼的URL轉換回正常。
51.爲何不建議在JavaScript中使用innerHTML?
innerHTML內容每次刷新,所以很慢。在innerHTML中沒有驗證的餘地,所以,更容易在文檔中插入錯誤代碼,從而使網頁不穩定。
52.如何在不支持JavaScript的舊瀏覽器中隱藏JavaScript代碼?
在<script>標籤以後的代碼中添加「<! - 」,不帶引號。
在<script>標籤以前添加「// - >」代碼中沒有引號。
舊瀏覽器如今將JavaScript代碼視爲一個長的HTML註釋。而支持JavaScript的瀏覽器則將「<! - 」和「// - >」做爲一行註釋。
53.javascript的typeof返回哪些數據類型?
Object、number、function、boolean、underfind
54.例舉 3 種強制類型轉換和 2 種隱式類型轉換?
強制(parseInt,parseFloat,number)
隱式(== – ===)
55.split()和join()的區別。
前者是切割成數組的形式,後者是將數組轉換成字符串。
56.事件綁定和普通事件有什麼區別?
普通添加事件的方法不支持添加多個事件,最下面的事件會覆蓋上面的,而事件綁定(addEventListener)方式添加事件能夠添加多個。
57.IE和DOM事件流的區別。
1)執行順序不同
2)參數不同
3)事件加不加on
4)this指向問題
58.IE和標準下有哪些兼容性的寫法?
Var ev = ev || window.event; document.documentElement.clientWidth || document.body.clientWidth;
Var target = ev.srcElement||ev.target
59.ajax請求的時候get和post方式的區別。
一個在url後面,一個放在虛擬載體裏面
有大小限制
安全問題
應用不一樣:一個是論壇等只須要請求的,一個是相似修改密碼的
60.call和apply的區別。
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
61.ajax請求時,如何解釋json數據?
使用eval parse,鑑於安全性考慮使用parse更靠譜。
62.事件委託是什麼?
讓利用事件冒泡的原理,讓本身的所觸發的事件,讓他的父元素代替執行!
例子可見此連接:http://www.webasily.com/?p=78
63.閉包是什麼?有什麼特性?對頁面有什麼影響?
閉包就是可以讀取其餘函數內部變量的函數。
此連接可查看:http://blog.csdn.net/gaoshanw...
64.如何阻止事件冒泡和默認事件?
canceBubble、return、false
65.添加 刪除 替換 插入到某個接點的方法。
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild
66.解釋jsonp的原理,以及爲何不是真正的ajax。
動態建立script標籤,回調函數
Ajax是頁面無刷新請求數據操做
67.javascript的本地對象,內置對象和宿主對象。
本地對象爲array obj regexp等能夠new實例化
內置對象爲gload Math等不能夠實例化的
宿主對象爲瀏覽器自帶的document,window等
68.document load和document ready的區別。
Document.onload是在結構和樣式加載完才執行js; Document.ready原生種沒有這個方法,jquery中有 $().ready(function)
69.「==」和「===」的不一樣。
前者會自動轉換類型,後者不會。
70.javascript的同源策略。
一段腳本只能讀取來自於同一來源的窗口和文檔的屬性,這裏的同一來源指的是主機名、協議和端口號的組合。