前端面試之面試題詳解

前端面試之面試題詳解


爲何寫這個呢,由於感受這份面試題有些我還真不知道,而且有些東西也是知其然而不知其因此然,因此特意寫這篇來記錄一下這些問題。javascript

面試題具體以下

  1. javascript的typeof返回哪些類型?
  2. 舉例3種javascript中的強制類型轉換,2中隱式類型轉換?
  3. split(),join()的區別?
  4. 數組方法pop(),push(),unshift(),shift()?
  5. 事件綁定和普通事件有什麼區別?
  6. ie和dom事件流的區別?
  7. ie標準下有哪些兼容性寫法?
  8. ajax請求中get和post有什麼區別?
  9. call和apply的區別?
  10. ajax請求時,如何解釋json數據?
  11. 事件委託是什麼?
  12. 如何阻止事件冒泡和默認事件?
  13. javascript的本地對象,內置對象和宿主對象?
  14. document load和document ready的區別?

題目答案

1.

javascript的typeof返回的類型,其實只要知道javascript中有哪些類型,這道題就不難解答。null,undefined,object,number,string,boolean。其中object是一種javascript中複雜的數據類型,本質上是由一組無序的名值對組成的。css

2.

javascript是一種弱類型語言,其中提供了一些函數的類型轉換諸如parseInt,parseFloat,toString,Number等;隱式的轉換有以下狀況:前端

  • 第一種狀況
var a = 2;a = a + '4';
  • 第二種狀況
var obj = {name:'jack};
if(obj){//do something;}

這裏obj被隱式轉換成了boolean型java

  • 第三種狀況
var person = {'name':'jack',"age":20,school:'PKU'};
for(var a in person){
 alert(a + ": " + typeof a);
}

3.

其實這道題是很簡單的,都很經常使用。一個是將字符串分割爲數組,一個是將數組鏈接成字符串面試

4.

理解堆棧和隊列這道題就不難ajax

5.

綁定事件是綁定在dom元素上的事件,而普通事件是非dom元素的事件。我理解是這樣的。json

6.

ie和dom有如下集中區別數組

  • 獲取事件的目標是不同的
    IE
    var oTarget=oEvent.srcElement; //Masintosh的IE同時支持srcElement和target屬性
    DOM
    DOM兼容的遊覽器上目標包含在target屬性中
    var oTarget=oEvent.target;
  • 獲取字符代碼
    IE
    var iCharCode = event.keyCode
    DOM
    在DOM兼容的遊覽器中,按鍵的代碼和字符會有一個分離,要獲取字符代碼,使用charCode屬性
    var iCharCode =event.charCode
  • 阻止某個事件的默認行爲
    IE
    要在IE中阻止某個事件的默認行爲,必須將returnValue屬性設置爲false
    oEvent.returnValue=false;
    DOM
    要調用preventDefault()方法
    oEvent.preventDefault();
    好比在右擊頁面的時候能夠阻止事件的默認行爲,只要阻止contextmenu事件的默認行爲就能夠了。
  • 中止事件的複製(冒泡)
    IE
    在IE中,要阻止事件的進一步冒泡,必須設置cancelBubble屬性爲true
    oEvent.cancelBubble=true;
    DOM
    在mozilla中,只須要調用stopPropagation()方法便可
    oEvent.stopPropagation()

7.

ie下的一些hacker寫法瀏覽器

background-color: #CC00FF; /*全部瀏覽器都會顯示爲紫色*/
background-color: #FF0000\9; /*IE六、IE七、IE8會顯示紅色*/
*background-color: #0066FF; /*IE六、IE7會變爲藍色*/
_background-color: #009933; /*IE6會變爲綠色*/

8.

  • 使用Get請求時,參數在URL中顯示,而使用Post方式,則不會顯示出來
  • 使用Get請求發送數據量小,Post請求發送數據量大

9.

call和apply接受的參數不一樣,call接受的是一個個的參數,而apply接受的一個數字型的參數app

10.

其中設置 dataType:"json",使得返回來的數據格式爲json。若是不添加該條屬性,則返回來的爲字符串。字符串對象能夠經過eval("("+data+")")方法轉成json對象,但該方法不推薦使用,對於取數據的操做同上。區分data爲JSON對象仍是字符串,能夠經過alert語句進行打印,若是是Object object就是JSON對象,若是將內容顯示出來則爲字符串。

11.

通俗的講,事件就是onclick,onmouseover,onmouseout,等就是事件,委託呢,就是讓別人來作,這個事件原本是加在某些元素上的,然而你卻加到別人身上來作,完成這個事件。

12.

6中有細講這兩個

13.

javascript的本地對象有如下一些:
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
內置對象,即 Global 和 Math
全部的BOM和DOM對象都是宿主對象

14.

document ready事件表示文檔結構已經加載完成,表示能夠對dom進行操做。document load事件表示文檔結構之外的包括圖片在內的全部元素都加載完成。

總結

這是記錄的一些關於這些題目的記錄,也有些偏頗。歡迎來噴!!!

相關文章
相關標籤/搜索