JavaScript面試78題

JavaScript面試78題



大家好,這一期呢,我們來說一下JavaScript的面試題。

第1題,什麼是JavaScript?

JavaScript是一門編程語言,既可以在客戶端用,又可以在服務器端使用。它是一門基於對象的編程語言。

第2題,列舉一下Java和JavaScript的不同。

Java是面向對象的編程語言,定義各方面都非常的嚴格和完整。

JavaScript是基於對象的編程語言。在使用的過程中,它的風格相對比較開放,自由度很高。

第3題,在JavaScript中的數據類型有哪些?

Number, String, Bollean, Object, Undefined.

第4題,isNaN函數的作用是什麼?

如果輸入值不是一個數字的話,這個函數會返回真,否則的話返回false。

第5題,JavaScript和ASP>

JavaScript更快一些。因為JavaScript直接可以在客戶端運行不需要依賴於網絡服務器端。ASP>

當然,現在JavaScript也可以用於開發服務器端的代碼了。

第6題,什麼是negative infinity?

Negative infinity是用一個負數除以0得出的數字。

第7題,有沒有可能把JavaScript的一行代碼分成幾行?

可以, 雖然不建議這麼做,但是可以。

第8題,JavaScript是哪家公司開發的?

Netscape.

第9題,什麼是undeclared和undefined變量?

undeclared變量是指在程序中不存在,沒有被聲明過的,如果程序試圖訪問這樣的變量,應該會返回run time error.

Undefined變量是那些沒有賦值的變量。把程序讀取這些變量的值的時候,讀到的值就是undefined。

第10題, 如何動態的添加html的元素?

一些方法可以使用,比如create element, create text node, append child等等。

第11題,什麼是全局變量?這些變量是如何定義的,程序應該如何用他們?

全局變量是在程序運行整個過程中可以被訪問量的變量,他們沒有scope, var關鍵字是用來define一個局部或者全局變量或者對象的。

全局變量的最大問題就是它會跟局部變量的名字發生衝突,代碼中如果依賴於大量的全局變量非常不容易debug。

第12題,什麼是prompt box?

Prompt box就是一個對話框,用戶可以提供自己的輸入。

第13題,this關鍵字是什麼?

這一次關鍵字表示的是一個對象, 這個對象對應著被調用的地方。

第14題,解釋一下timers. 用timers有什麼壞處嗎?

JavaScript中有如下timer函數: setTimeOut, setInterval, clearInterval.

Set time out會在一個時間延遲以後調用一個函數。

setInterval會在一個時間延遲以後重複的調用一個函數。Clear interval是用來終止這個過程。

這些timers也是運行在一個單線程中,因此事件可能會排隊等待被處理。

第15題, 哪些符號可以在JavaScript中用來做註釋?

//

/* */

第16題,view state和session state的區別是什麼?

view state 指的是在session中的一個頁面。

Session state,指的是用戶特定的數據, 這些數據可以用於訪問所有的頁面。

第17題,什麼是三個等號操作符?

三個等號操作符只有當兩邊的值相等並且類型相等才會返回真。

第18題,解釋一下你如何用JavaScript提交一個form?

submit方法。

第19題,JavaScript支持自動類型轉換嗎?

是的,JavaScript支持自動類型轉換。

第20題, 如何用JavaScript來改變一個元素的style/class?

.style.fontSize="20px"

.className="any class name"

第21題, 解釋一下如何讀寫一個文件。

兩種方法,一個是用JavaScript擴展, 一個是使用一個網頁和activeX 對象。

第22題, 如何在JavaScript中使用循環?

For

While

do while

第23題, 什麼是called variable typing?

在JavaScript中,一個變量可以賦值為數字,同時這個變量還可以賦值為一個字符串,這就叫called variable typing。

第24題, 如何把字符串轉換成不同進制的整數?

使用parseInt函數。

parseInt("4f", 16)

第25題, 兩個等號和三個等號的區別是什麼?

兩個等號只檢查值是否相等。三個等號即既檢查值是否相等,也檢查類型是否相等。

第26題,1+2+"5"的結果是什麼?

35

兩個數字先相加得三, 數字跟後面的字符串相加都變成字符串,所以得出有35。

第27題, 如何在客戶端檢查操作系統?

navigator.platform

第28題, null 是什麼?

Null是一個對象,它標識的是沒有值的空對象。

第29題,Delete操作符的作用是什麼?

Delete用來刪除屬性及其值。

delete student.age

第30題, undefined指的是什麼值?

這個變量不存在。

這個變量未賦值。

這個屬性不存在。

第31題,在JavaScript中有幾種類型的彈出框?

alert

confirm

prompt

第32題, void(0)的作用是什麼?

void(0)是為了防止頁面刷新,0是調用以後的傳送值。

是用來調用另一個方法,而不需要刷新頁面。

第33題,在javascript中如何在一個頁面中加載另一個頁面?

第34題, JavaScript中變量的數據類型是什麼?

所有的變量都是對象數據類型。

第35題, Alert跟confirmation的區別是什麼?

Alert只有一個按鈕,就是OK。

Confirmation有兩個按鈕,一個是OK,一個是cancel。

第36題,什麼是escape字符?

在顯示單引號, 雙引號, 撇號,地址號時需要escape:\\。

第37題,什麼是JavaScript的cookies?

Cookies是用來在電腦上存儲用戶少量的信息的。比如購物信息,用戶名的信息。

第38題,解釋一下pop方法。

這個是數組中的一個方法。pop跟shift很相似,但是shift方法會從數組的開頭取值,而pop是從數組的尾部取值。

Pop從數組取值以後會把尾部的值刪掉,因此數組會被改變。

array.pop()

第39題, JavaScript是否有concept level scope?

沒有。JavaScript沒有concept level of scope,在函數中定義的變量,有函數內的scope。

第40題, 在JavaScript中使用inner html的缺點有哪些?

缺點有:

內容隨時隨處會被改變。

我們不能使用像append to inner html的方法。

即使我們使用plus equal, innerHtml+=, 原先的內容也會被替換掉。

整個inner html的內容會被重新解析,然後再添加到元素當中,因此非常慢。

Inner html的添加過程沒有驗證,因此我們有可能添加一些無效的內容,從而導致整個文檔崩潰。

第41題, 什麼是break 和 continue?

Break是為了中斷當前的循環,continue會中斷當前的操作但會繼續當前的循環。

第42題,在JavaScript中有哪兩類基本的數據類型?

一種是原始數據類型,一種是引用數據類型。

數據類型包含像數字,布爾類型。引用數據類型比較複雜一些,像字符串,日期。

第43題,通用對象是如何創建的?

var obj=new object();

第44題, Type of操作符是幹什麼用的?

Typeof操作符是返回一個變量的類型, 是用字符串來表述的。

第45題, 哪些關鍵字用來處理異常?

Try catch finally.

第46題,哪個關鍵字用來在屏幕上打印文字?

document.write()

第47題,blur函數的作用是什麼?

blur函數是用來去除某個指定對象的焦點。

第48題, 什麼是variable typing?

這個問題上面提到過一次了,就是把一個數字賦給一個變量,然後又把字符串賦給相同的這個變量。

第49題, 如何在客戶端找到操作系統的名字?

Navigator.appversion.

第50題, 在JavaScript中有多少種錯誤類型?

Load time errors.

Run time errors,

logical errors.

第51題,push method的用處是什麼?

這個方法是用來向一個數組尾部添加一個和多個元素的。

第52題, unshift method是幹什麼的?

umshift跟push method類似,只不過它是在數組的前面添加元素。

第53題, JavaScript和JScript的區別是什麼?

他們非常接近,只是JavaScript是netscape開發的,JScript是Microsoft開發的。

第54題, 對象的屬性是如何分配的?

obj.prop=12

或者

obj["prop"]=12

第55題,什麼是strict mode?怎麼激活它?

Strict mode可以使JavaScript代碼更整潔更安全,它會實時的顯示代碼中的錯誤。

啟動strict mode,調用下面的語句

"use strict";

第56題, 如何獲取checkbox的狀態?

document.getElementById("id").checked

第57題,解釋一下window.onload和ondocumentready.

onload在所有的配置信息加載完成以後才會調用。

Ondocumentready, 會在dom加載完成以後啟動。

它比onload要早一些被調用。

第58題, 解釋一下JavaScript中的closures, 它們應該何時被使用?

Closure是一個局部的聲明變量,跟一個函數相關, 在函數返回時,會存在內存裡面。

第59題, 給出一種方法,在數組的尾部添加元素。

arr[arr.length]=value

第60題, 解釋一下for-in循環。

這個循環是用來遍歷一個對象的所有屬性。

第61題, 解釋一下匿名函數。

匿名函數是被定義的時候沒有指定名字的函數。

第62題, Call和apply的區別是什麼?

Call和apply非常相近,只有一點不同。當函數的調用參數可知的時候, Call可以被使用。當函數的調用參數不可知時,apply應該被用到。

第63題, 什麼是event bubbling?

JavaScript允許dom元素嵌套使用。在這種情況下,如果一個子元素被點擊了,那麼它的父元素也會同樣的被點擊。

第64題,JavaScript大小寫敏感嗎?

是的。是大小寫敏感的。

第65題,有哪些boolean操作符?

and, or, not

第66題, 在超級鏈接的時候,能不能指定一個特定的frame?

可以通過target屬性設定這個frame的名字。

第67題, Web garden和web farm的區別是什麼?

Web garden和web farm都是網絡hosting系統。它們的區別是Web garden在一臺服務器上。I verb form, 是更大的配置,常常用在多於一臺服務器的時候。

第68題, JavaScript中如何操作dom?

通過dom API.

第69題,Event handler如何使用?

event handler用於設定一個函數屬性來對應一個事件的發生。

第70題, 解釋一下deferred腳本的作用是什麼。

Deferred腳本會推遲運行從而加快頁面加載的時間。

第71題, 有哪些不同的functional組件?

First class functions. 這些函數可以作為參數傳入另一個函數當中。可以作為函數的返回值返回,也可以存放在數據結構當中。

Nested functions. 這種函數是嵌套的另一個函數里面,每次它們被調用,它們的主函數也會比較有。

第72題, 什麼是屏幕對象?

屏幕對象是讀取客戶端屏幕信息的對象。

這些信息包含availHeight, availWidth, ColorDepth, Height, Width。

第73題, 解釋一下unescape和escape函數。

escape函數是用來對一些字符串進行編碼,以便於從一個計算機傳到另一臺計算機上。

unescape函數是為了把上述的編碼後的字符串,轉化成可以閱讀的字符串。

第74題, 什麼是decodeURI和encodeURI?

encodeURI是把url轉化成hex編碼。

decodeURI是把hex編碼轉回成url。

第75題, 下面這個語句是幹什麼用的?

var arr=[[[]]]

它定義了一個三維數組。

第76題, JavaScript跟ecma>

ecma>

JavaScript是面向網絡開發的腳本語言。

第77題, 什麼是JavaScript的命名空間,如何使用?

命名空間是用來分組管理函數變量等等,有一個獨有的名字。在這個名字下面啊,附屬著一系列的函數,對象,屬性等等。這些大大改善了代碼的模塊化,增強了代碼的重用性。

第78題, 當不支持JavaScript的時候,在老的瀏覽器中如何隱藏JavaScript?

在script 標記之後添加""。

這樣在老的瀏覽器中,會把這部分代碼當做很長的html的註釋。

在現代瀏覽器中會把


分享到:


相關文章: