JavaScript基礎題庫

 

選擇題:

 

 

填空題:

 

 

問答題:

一、什麼是JavaScript?(這是基本題,對不少程序員來講也是送分題!)html

JavaScript是客戶端和服務器端腳本語言,能夠插入到HTML頁面中,而且是目前較熱門的Web開發語言。同時,JavaScript也是面向對象編程語言。java

相似的基本題目還包括:JavaScript都有哪些類型?JavaScript是誰發明的?......node

二、列舉Java和JavaScript之間的區別?程序員

Java是一門十分完整、成熟的編程語言。相比之下,JavaScript是一個能夠被引入HTML頁面的編程語言。這兩種語言並不徹底相互依賴,而是針對不一樣的意圖而設計的。 Java是一種面向對象編程(OOPS)或結構化編程語言,相似的如C ++或C,而JavaScript是客戶端腳本語言,它被稱爲非結構化編程。web

3. JavaScript和ASP腳本相比,哪一個更快?面試

JavaScript更快。JavaScript是一種客戶端語言,所以它不須要Web服務器的協助來執行。另外一方面,ASP是服務器端語言,所以老是比JavaScript慢。值得注意的是,Javascript如今也可用於服務器端語言(nodejs)。編程

史上最全的Javascript面試題總結(內附答案)

四、什麼是負無窮大?數組

負無窮大是JavaScript中的一個數字,能夠經過將負數除以零來獲得。瀏覽器

五、如何將JavaScript代碼分解成幾行嗎?服務器

在字符串語句中能夠經過在第一行末尾使用反斜槓「\」來完成

例:document.write("This is \a program");

若是不是在字符串語句中更改成新行,那麼javaScript會忽略行中的斷點。

例:

var x=1, y=2,

z=

x+y;

上面的代碼是完美的,但並不建議這樣作,由於阻礙了調試。

六、什麼是未聲明和未定義的變量?

未聲明的變量是程序中不存在且未聲明的變量。若是程序嘗試讀取未聲明變量的值,則會遇到運行時錯誤。未定義的變量是在程序中聲明但還沒有給出任何值的變量。若是程序嘗試讀取未定義變量的值,則返回未定義的值。

七、如何編寫可動態添加新元素的代碼?

史上最全的Javascript面試題總結(內附答案)

八、什麼是全局變量?這些變量如何聲明,使用全局變量有哪些問題?

全局變量是整個代碼長度可用的變量,也就是說這些變量沒有任何做用域。var關鍵字用於聲明局部變量或對象。若是省略var關鍵字,則聲明一個全局變量。

例:// Declare a global globalVariable = 「Test」;

使用全局變量所面臨的問題是本地和全局變量名稱的衝突。此外,很難調試和測試依賴於全局變量的代碼。

九、解釋JavaScript中定時器的工做?若是有,也能夠說明使用定時器的缺點?

定時器用於在設定的時間執行一段代碼,或者在給定的時間間隔內重複該代碼。這經過使用函數setTimeout,setInterval和clearInterval來完成。

  • setTimeout(function,delay)函數用於啓動在所述延遲以後調用特定功能的定時器。

  • setInterval(function,delay)函數用於在提到的延遲中重複執行給定的功能,只有在取消時才中止。

  • clearInterval(id)函數指示定時器中止。

定時器在一個線程內運行,所以事件可能須要排隊等待執行。

十、ViewState和SessionState有什麼區別?

「ViewState」特定於會話中的頁面。

「SessionState」特定於可在Web應用程序中的全部頁面上訪問的用戶特定數據。

十一、什麼是===運算符?

===被稱爲嚴格等式運算符,當兩個操做數具備相同的值而沒有任何類型轉換時,該運算符返回true。

十二、說明如何使用JavaScript提交表單?

要使用JavaScript提交表單,請使用

document.form [0] .submit();

1三、元素的樣式/類如何改變?

能夠經過如下方式完成:

document.getElementById(「myText」).style.fontSize = 「20?;

document.getElementById(「myText」).className = 「anyclass」;

1四、JavaScript中的循環結構都有什麼?

For、While、do-while loops

1五、如何在JavaScript中將base字符串轉換爲integer?

parseInt() 函數解析一個字符串參數,並返回一個指定基數的整數。parseInt()將要轉換的字符串做爲其第一個參數,第二個參數是給定字符串的基礎。

爲了將4F(基數16)轉換爲整數,所使用的代碼是 :parseInt ("4F", 16);

1六、說明「==」和「===」之間的區別?

「==」僅檢查值相等,而「===」是一個更嚴格的等式斷定,若是兩個變量的值或類型不一樣,則返回false。

1七、3 + 2 +「7」的結果是什麼?

因爲3和2是整數,它們將直接相加。因爲7是一個字符串,它將會被直接鏈接,因此結果將是57。

1八、說明如何檢測客戶端機器上的操做系統?

爲了檢測客戶端機器上的操做系統,應使用navigator.appVersion字符串(屬性)。

1九、Javascript中的NULL是什麼意思?

NULL用於表示無值或無對象。它意味着沒有對象或空字符串,沒有有效的布爾值,沒有數值和數組對象。

20、delete操做符的功能是什麼?

delete操做符用於刪除程序中的全部變量或對象,但不能刪除使用VAR關鍵字聲明的變量。

2一、JavaScript中有哪些類型的彈出框?

Alert、Confirm and、Prompt

2二、Void(0)怎麼用?

  • Void(0)用於防止頁面刷新,並在調用時傳遞參數「zero」。

  • Void(0)用於調用另外一種方法而不刷新頁面。

2三、如何強制頁面加載JavaScript中的其餘頁面?

必須插入如下代碼才能達到預期效果:

史上最全的Javascript面試題總結(內附答案)

2四、escape字符是用來作什麼的?

使用特殊字符(如單引號,雙引號,撇號和&符號)時,將使用轉義字符(反斜槓)。在字符前放置反斜槓,使其顯示。

例:

史上最全的Javascript面試題總結(內附答案)

2五、什麼是JavaScript Cookie?

Cookie是用來存儲計算機中的小型測試文件,當用戶訪問網站以存儲他們須要的信息時,它將被建立。

2六、解釋JavaScript中的pop()方法?

pop()方法與shift()方法相似,但不一樣之處在於Shift方法在數組的開頭工做。此外,pop()方法將最後一個元素從給定的數組中取出並返回。而後改變被調用的數組。

例:

var cloths = [「Shirt」, 「Pant」, 「TShirt」];

cloths.pop();

//Now cloth becomes Shirt,Pant

2七、在JavaScript中使用innerHTML的缺點是什麼?

若是在JavaScript中使用innerHTML,缺點是:內容隨處可見;不能像「追加到innerHTML」同樣使用;即便你使用+ = like「innerHTML = innerHTML +'html'」舊的內容仍然會被html替換;整個innerHTML內容被從新解析並構建成元素,所以它的速度要慢得多;innerHTML不提供驗證,所以咱們可能會在文檔中插入有效的和破壞性的HTML並將其中斷。

2八、break和continue語句的做用?

  • Break語句從當前循環中退出。

  • continue語句繼續下一個循環語句。

2九、在JavaScript中,dataypes的兩個基本組是什麼?

  • Primitive

  • Reference types

原始類型是數字和布爾數據類型。引用類型是更復雜的類型,如字符串和日期。

30、如何建立通用對象?

通用對象能夠建立爲:

var I = new object();

3一、operator類型用來作什麼?

'Typeof'是一個運算符,用於返回變量類型的字符串描述。

3二、哪些關鍵字用於處理異常?

try... Catch-finally用於處理JavaScript中的異常。

史上最全的Javascript面試題總結(內附答案)

3三、JavaScript中不一樣類型的錯誤有幾種?

有三種類型的錯誤:

  • Load time errors:該錯誤發生於加載網頁時,例如出現語法錯誤等情況,稱爲加載時間錯誤,而且會動態生成錯誤。

  • Run time errors:因爲在HTML語言中濫用命令而致使的錯誤。

  • Logical Errors:這是因爲在具備不一樣操做的函數上執行了錯誤邏輯而發生的錯誤。

3四、在JavaScript中使用的Push方法是什麼?

push方法用於將一個或多個元素添加或附加到數組的末尾。使用這種方法,能夠經過傳遞多個參數來附加多個元素。

3五、什麼是JavaScript中的unshift方法?

Unshift方法就像在數組開頭工做的push方法。該方法用於將一個或多個元素添加到數組的開頭。

3六、對象屬性如何分配?

屬性按如下方式分配給對象:

obj["class"] = 12;

obj.class = 12;

3七、得到CheckBox狀態的方式是什麼?

alert(document.getElementById('checkbox1')。checked);

若是CheckBox被檢查,此警報將返回TRUE。

3八、解釋window.onload和onDocumentReady?

在載入頁面的全部信息以前,不運行onload函數。這致使在執行任何代碼以前會出現延遲。

onDocumentReady在加載DOM以後加載代碼。這容許早期的代碼操縱。

3九、你將如何解釋JavaScript中的閉包? 何時使用?

Closure是與函數返回時保留在內存中的函數相關的本地聲明變量。

例如:

史上最全的Javascript面試題總結(內附答案)

40、一個值如何附加到數組?

能夠以給定的方式將值附加到數組:

arr [arr.length] = value;

4一、解釋for-in循環?

for-in循環用於循環對象的屬性。

for-in循環的語法是:

史上最全的Javascript面試題總結(內附答案)

在每次循環中,來自對象的一個屬性與變量名相關聯,循環繼續,直到對象的全部屬性都被耗盡。

4二、描述JavaScript中的匿名函數?

被聲明爲沒有任何命名標識符的函數被稱爲匿名函數。通常來講,匿名函數在聲明後沒法訪問。

匿名函數聲明:

史上最全的Javascript面試題總結(內附答案)

4三、.call()和.apply()之間有什麼區別?

函數.call()和.apply()在使用上很是類似,只是有一點區別。當程序員知道函數參數的編號時,使用.call(),由於它們必須在調用語句中被說起爲參數。另外一方面,當不知道數字時使用.apply(),函數.apply()指望參數爲數組。

.call()和.apply()之間的基本區別在於將參數傳遞給函數。它們的用法能夠經過給定的例子進行說明。

史上最全的Javascript面試題總結(內附答案)

4四、定義事件冒泡?

JavaScript容許DOM元素嵌套在一塊兒。在這種狀況下,若是單擊子級的處理程序,父級的處理程序也將執行一樣的工做。

4五、什麼樣的布爾運算符能夠在JavaScript中使用?

「And」運算符(&&),'Or'運算符(||)和'Not'運算符(!)能夠在JavaScript中使用。

*運算符沒有括號。

4六、一個特定的框架如何使用JavaScript中的超連接定位?

能夠經過使用「target」屬性在超連接中包含所需幀的名稱來實現。

<a href=」newpage.htm」 target=」newframe」>>New Page</a>

4七、在web-garden和web-farm之間有何不一樣?

web-garden和web-farm都是網絡託管系統。惟一的區別是web-garden是在單個服務器中包含許多處理器的設置,而web-farm是使用多個服務器的較大設置。

4八、如何分配對象屬性?

將屬性分配給對象的方式與賦值給變量值相同。例如,表單對象的操做值如下列方式分配爲「‘submit」:Document.form.action =「submit」

4九、在JavaScript中讀取和寫入文件的方法是什麼?

能夠經過使用JavaScript擴展(從JavaScript編輯器運行),打開文件的示例來完成:

fh = fopen(getScriptPath(), 0);

50、在JavaScript中如何使用DOM?

DOM表明文檔對象模型,而且負責文檔中各類對象的相互交互。DOM是開發網頁所必需的,其中包括諸如段落,連接等對象。能夠操做這些對象以包括添加或刪除等操做,DOM還須要向網頁添加額外的功能。除此以外,API的使用比其餘更有優點。

5一、JavaScript中如何使用事件處理程序?

事件是由用戶生成活動(例如單擊連接或填寫表單)致使的操做。須要一個事件處理程序來管理全部這些事件的正確執行。事件處理程序是對象的額外屬性。此屬性包括事件的名稱以及事件發生時採起的操做。

5二、解釋延遲腳本在JavaScript中的做用?

默認狀況下,在頁面加載期間,HTML代碼的解析將暫停,直到腳本中止執行。這意味着,若是服務器速度較慢或者腳本特別沉重,則會致使網頁延遲。在使用Deferred時,腳本會延遲執行直到HTML解析器運行。這減小了網頁加載時間,而且它們的顯示速度更快。

5三、JavaScript中的各類功能組件是什麼?

JavaScript中的不一樣功能組件是:

  • First-class函數:JavaScript中的函數被用做第一類對象。這一般意味着這些函數能夠做爲參數傳遞給其餘函數,做爲其餘函數的值返回,分配給變量,也能夠存儲在數據結構中。

  • 嵌套函數:在其餘函數中定義的函數稱爲嵌套函數。

5四、解釋unshift()方法?

該方法在數組啓動時起做用,與push()不一樣。 它將所需數量的元素添加到數組的頂部。例如:

史上最全的Javascript面試題總結(內附答案)

輸出以下所示:

[" joseph "," Jane ", " charlie ", " john "]

5五、decodeURI()和encodeURI()是什麼?

EncodeURl()用於將URL轉換爲十六進制編碼。而DecodeURI()用於將編碼的URL轉換回正常。

5六、爲何不建議在JavaScript中使用innerHTML?

innerHTML內容每次刷新,所以很慢。 在innerHTML中沒有驗證的餘地,所以,更容易在文檔中插入錯誤代碼,從而使網頁不穩定。

5七、如何在不支持JavaScript的舊瀏覽器中隱藏JavaScript代碼?

  • 在<script>標籤以後的代碼中添加「<! - 」,不帶引號。

  • 在<script>標籤以前添加「// - >」代碼中沒有引號。

  • 舊瀏覽器如今將JavaScript代碼視爲一個長的HTML註釋。而支持JavaScript的瀏覽器則將「<! - 」和「// - >」做爲一行註釋。

相關文章
相關標籤/搜索