1. 程式人生 > >小白學習路之Javascript 面試題

小白學習路之Javascript 面試題

1、什麼是 JavaScript? JavaScript 是客戶端和伺服器端指令碼語言,可以插入到 HTML 頁面中,並且是目前較熱門的 Web 開發語言。同時,JavaScript 也是面向物件程式語言。

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

2、列舉 Java 和 JavaScript 之間的區別 ?

Java 是一門十分完整、成熟的程式語言。相比之下,JavaScript 是一個可以被引入 HTML 頁面的程式語言。這兩種語言並不完全相互依賴,而是針對不同的意圖而設計的。 Java 是一種面向物件程式設計 ( OOPS ) 或結構化程式語言,類似的如 C ++ 或 C,而 JavaScript 是客戶端指令碼語言,它被稱為非結構化程式設計。

3. JavaScript 和 ASP 指令碼相比,哪個更快 ?

JavaScript 更快。JavaScript 是一種客戶端語言,因此它不需要 Web 伺服器的協助來執行。另一方面,ASP 是伺服器端語言,因此總是比 JavaScript 慢。值得注意的是,Javascript 現在也可用於伺服器端語言 ( nodejs ) 。

4、什麼是負無窮大 ? 負無窮大是 JavaScript 中的一個數字,可以通過將負數除以零來得到。

5、如何將 JavaScript 程式碼分解成幾行嗎 ?

在字串語句中可以通過在第一行末尾使用反斜槓 “” 來完成

例:document.write ( “This is a program” ) ;

如果不是在字串語句中更改為新行,那麼 javaScript 會忽略行中的斷點。

例:

var x=1, y=2,

x+y;

上面的程式碼是完美的,但並不建議這樣做,因為阻礙了除錯。

6、什麼是未宣告和未定義的變數 ?

未宣告的變數是程式中不存在且未宣告的變數。如果程式嘗試讀取未宣告變數的值,則會遇到執行時錯誤。未定義的變數是在程式中宣告但尚未給出任何值的變數。如果程式嘗試讀取未定義變數的值,則返回未定義的值。

8、什麼是全域性變數 ? 這些變數如何宣告,使用全域性變數有哪些問題 ? 全域性變數是整個程式碼長度可用的變數,也就是說這些變數沒有任何作用域。var 關鍵字用於宣告區域性變數或物件。如果省略 var 關鍵字,則宣告一個全域性變數。

例:// Declare a global globalVariable = “Test”;

使用全域性變數所面臨的問題是本地和全域性變數名稱的衝突。此外,很難除錯和測試依賴於全域性變數的程式碼。

9、解釋 JavaScript 中定時器的工作 ? 如果有,也可以說明使用定時器的缺點 ?

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

setTimeout ( function,delay ) 函式用於啟動在所述延遲之後呼叫特定功能的定時器。

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

clearInterval ( id ) 函式指示定時器停止。

定時器在一個執行緒內執行,因此事件可能需要排隊等待執行。

10、ViewState 和 SessionState 有什麼區別 ?

“ViewState” 特定於會話中的頁面。

“SessionState” 特定於可在 Web 應用程式中的所有頁面上訪問的使用者特定資料。

11、什麼是 === 運算子 ?

=== 被稱為嚴格等式運算子,當兩個運算元具有相同的值而沒有任何型別轉換時,該運算子返回 true。

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

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

document.form [ 0 ] .submit ( ) ;

document.form [ 0 ] .submit ( )

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

可以通過以下方式完成:

document.getElementById ( “myText” ) .style.fontSize = "20?;

document.getElementById ( “myText” ) .className = “anyclass”;

14、JavaScript 中的迴圈結構都有什麼 ?

For、While、do-while loops

15、如何在 JavaScript 中將 base 字串轉換為 integer?

parseInt ( ) 函式解析一個字串引數,並返回一個指定基數的整數。parseInt ( ) 將要轉換的字串作為其第一個引數,第二個引數是給定字串的基礎。

為了將 4F ( 基數 16 ) 轉換為整數,所使用的程式碼是 :parseInt ( “4F”, 16 ) ;

16、說明 “" 和 "=” 之間的區別 ?

" 僅檢查值相等,而 "=” 是一個更嚴格的等式判定,如果兩個變數的值或型別不同,則返回 false。

17、3 + 2 +“7” 的結果是什麼 ?

由於 3 和 2 是整數,它們將直接相加。由於 7 是一個字串,它將會被直接連線,所以結果將是 57。

18、說明如何檢測客戶端機器上的作業系統 ?

為了檢測客戶端機器上的作業系統,應使用 navigator.appVersion 字串 ( 屬性 ) 。

19、Javascript 中的 NULL 是什麼意思 ?

NULL 用於表示無值或無物件。它意味著沒有物件或空字串,沒有有效的布林值,沒有數值和陣列物件。

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

delete 操作符用於刪除程式中的所有變數或物件,但不能刪除使用 VAR 關鍵字宣告的變數。

21、JavaScript 中有哪些型別的彈出框 ?

Alert、Confirm and、Prompt

22、Void ( 0 ) 怎麼用 ?

Void ( 0 ) 用於防止頁面重新整理,並在呼叫時傳遞引數 “zero”。

Void ( 0 ) 用於呼叫另一種方法而不重新整理頁面。

23、如何強制頁面載入 JavaScript 中的其他頁面 ?

必須插入以下程式碼才能達到預期效果:

24、escape 字元是用來做什麼的 ? 使用特殊字元 ( 如單引號,雙引號,撇號和 & 符號 ) 時,將使用轉義字元 ( 反斜槓 ) 。在字元前放置反斜槓,使其顯示。

25、什麼是 JavaScript Cookie?

Cookie 是用來儲存計算機中的小型測試檔案,當用戶訪問網站以儲存他們需要的資訊時,它將被建立。

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

pop ( ) 方法與 shift ( ) 方法類似,但不同之處在於 Shift 方法在陣列的開頭工作。此外,pop ( ) 方法將最後一個元素從給定的陣列中取出並返回。然後改變被呼叫的陣列。

var cloths = [ “Shirt”, “Pant”, “TShirt” ] ;

cloths.pop ( ) ;

//Now cloth becomes Shirt,Pant

27、在 JavaScript 中使用 innerHTML 的缺點是什麼 ?加粗樣式

如果在 JavaScript 中使用 innerHTML,缺點是:內容隨處可見 ; 不能像 " 追加到 innerHTML" 一樣使用 ; 即使你使用 + = like"innerHTML = innerHTML +‘html’" 舊的內容仍然會被 html 替換 ; 整個 innerHTML 內容被重新解析並構建成元素,因此它的速度要慢得多 ;innerHTML 不提供驗證,因此我們可能會在文件中插入有效的和破壞性的 HTML 並將其中斷。

28、break 和 continue 語句的作用 ?

Break 語句從當前迴圈中退出。

continue 語句繼續下一個迴圈語句。

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

Primitive

Reference types

原始型別是數字和布林資料型別。引用型別是更復雜的型別,如字串和日期。

30、如何建立通用物件 ?

通用物件可以建立為:

var I = new object ( ) ;

31、operator 型別用來做什麼 ?

‘Typeof’ 是一個運算子,用於返回變數型別的字串描述。

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

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

33、JavaScript 中不同型別的錯誤有幾種 ? 有三種類型的錯誤:

Load time errors:該錯誤發生於載入網頁時,例如出現語法錯誤等狀況,稱為載入時間錯誤,並且會動態生成錯誤。

Run time errors:由於在 HTML 語言中濫用命令而導致的錯誤。

Logical Errors:這是由於在具有不同操作的函式上執行了錯誤邏輯而發生的錯誤。

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

push 方法用於將一個或多個元素新增或附加到陣列的末尾。使用這種方法,可以通過傳遞多個引數來附加多個元素。

35、什麼是 JavaScript 中的 unshift 方法 ?

Unshift 方法就像在陣列開頭工作的 push 方法。該方法用於將一個或多個元素新增到陣列的開頭。

36、物件屬性如何分配 ?

屬性按以下方式分配給物件:

obj [ “class” ] = 12;

obj.class = 12;

37、獲得 CheckBox 狀態的方式是什麼 ?

alert ( document.getElementById ( ‘checkbox1’ ) 。checked ) ;

如果 CheckBox 被檢查,此警報將返回 TRUE。

38、解釋 window.onload 和 onDocumentReady?

在載入頁面的所有資訊之前,不執行 onload 函式。這導致在執行任何程式碼之前會出現延遲。

onDocumentReady 在載入 DOM 之後載入程式碼。這允許早期的程式碼操縱。

39、你將如何解釋 JavaScript 中的閉包 ? 什麼時候使用 ?

Closure 是與函式返回時保留在記憶體中的函式相關的本地宣告變數。

例如:

40、一個值如何附加到陣列 ? 可以以給定的方式將值附加到陣列:

arr [ arr.length ] = value;

41、解釋 for-in 迴圈 ?

for-in 迴圈用於迴圈物件的屬性。

for-in 迴圈的語法是:

在每次迴圈中,來自物件的一個屬性與變數名相關聯,迴圈繼續,直到物件的所有屬性都被耗盡。 42、描述 JavaScript 中的匿名函式 ?

被宣告為沒有任何命名識別符號的函式被稱為匿名函式。一般來說,匿名函式在聲明後無法訪問。

匿名函式宣告:

43、.call ( ) 和 .apply ( ) 之間有什麼區別 ? 函式 .call ( ) 和 .apply ( ) 在使用上非常相似,只是有一點區別。當程式設計師知道函式引數的編號時,使用 .call ( ) ,因為它們必須在呼叫語句中被提及為引數。另一方面,當不知道數字時使用 .apply ( ) , 函式 .apply ( ) 期望引數為陣列。

.call ( ) 和 .apply ( ) 之間的基本區別在於將引數傳遞給函式。它們的用法可以通過給定的例子進行說明。

44、定義事件冒泡 ? JavaScript 允許 DOM 元素巢狀在一起。在這種情況下,如果單擊子級的處理程式,父級的處理程式也將執行同樣的工作。

45、什麼樣的布林運算子可以在 JavaScript 中使用 ?

“And” 運算子 ( && ) ,‘Or’ 運算子 ( || ) 和 ‘Not’ 運算子 ( ! ) 可以在 JavaScript 中使用。

  • 運算子沒有括號。

46、一個特定的框架如何使用 JavaScript 中的超連結定位 ?

可以通過使用 “target” 屬性在超連結中包含所需幀的名稱來實現。

New Page

47、在 web-garden 和 web-farm 之間有何不同 ?

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

48、如何分配物件屬性 ?

將屬性分配給物件的方式與賦值給變數值相同。例如,表單物件的操作值以下列方式分配為 " ‘ submit":Document.form.action =“submit”

49、在 JavaScript 中讀取和寫入檔案的方法是什麼 ?

可以通過使用 JavaScript 擴充套件 ( 從 JavaScript 編輯器執行 ) ,開啟檔案的示例來完成:

fh = fopen ( getScriptPath ( ) , 0 ) ;

50、在 JavaScript 中如何使用 DOM?

DOM 代表文件物件模型,並且負責文件中各種物件的相互互動。DOM 是開發網頁所必需的,其中包括諸如段落,連結等物件。可以操作這些物件以包括新增或刪除等操作,DOM 還需要向網頁新增額外的功能。除此之外,API 的使用比其他更有優勢。

51、JavaScript 中如何使用事件處理程式 ?

事件是由使用者生成活動 ( 例如單擊連結或填寫表單 ) 導致的操作。需要一個事件處理程式來管理所有這些事件的正確執行。事件處理程式是物件的額外屬性。此屬性包括事件的名稱以及事件發生時採取的操作。

52、解釋延遲指令碼在 JavaScript 中的作用 ?

預設情況下,在頁面載入期間,HTML 程式碼的解析將暫停,直到指令碼停止執行。這意味著,如果伺服器速度較慢或者指令碼特別沉重,則會導致網頁延遲。在使用 Deferred 時,指令碼會延遲執行直到 HTML 解析器執行。這減少了網頁載入時間,並且它們的顯示速度更快。

53、JavaScript 中的各種功能元件是什麼 ?

JavaScript 中的不同功能元件是:

First-class 函式:JavaScript 中的函式被用作第一類物件。這通常意味著這些函式可以作為引數傳遞給其他函式,作為其他函式的值返回,分配給變數,也可以儲存在資料結構中。

巢狀函式:在其他函式中定義的函式稱為巢狀函式。

54、解釋 unshift ( ) 方法 ?

該方法在陣列啟動時起作用,與 push ( ) 不同。 它將所需數量的元素新增到陣列的頂部。例如:

輸出如下所示: [ " joseph “,” Jane ", " charlie ", " john " ]

55、decodeURI ( ) 和 encodeURI ( ) 是什麼 ?

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

56、為什麼不建議在 JavaScript 中使用 innerHTML?

innerHTML 內容每次重新整理,因此很慢。 在 innerHTML 中沒有驗證的餘地,因此,更容易在文件中插入錯誤程式碼,從而使網頁不穩定。

57、如何在不支援 JavaScript 的舊瀏覽器中隱藏 JavaScript 程式碼 ?

在標籤之後的程式碼中新增 " 標籤之前新增 “// - >” 程式碼中沒有引號。

舊瀏覽器現在將 JavaScript 程式碼視為一個長的 HTML 註釋。而支援 JavaScript 的瀏覽器則將 “” 作為一行註釋。