爲何寫這個呢,由於感受這份面試題有些我還真不知道,而且有些東西也是知其然而不知其因此然,因此特意寫這篇來記錄一下這些問題。javascript
- javascript的typeof返回哪些類型?
- 舉例3種javascript中的強制類型轉換,2中隱式類型轉換?
- split(),join()的區別?
- 數組方法pop(),push(),unshift(),shift()?
- 事件綁定和普通事件有什麼區別?
- ie和dom事件流的區別?
- ie標準下有哪些兼容性寫法?
- ajax請求中get和post有什麼區別?
- call和apply的區別?
- ajax請求時,如何解釋json數據?
- 事件委託是什麼?
- 如何阻止事件冒泡和默認事件?
- javascript的本地對象,內置對象和宿主對象?
- document load和document ready的區別?
javascript的typeof返回的類型,其實只要知道javascript中有哪些類型,這道題就不難解答。null,undefined,object,number,string,boolean。其中object是一種javascript中複雜的數據類型,本質上是由一組無序的名值對組成的。css
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); }
其實這道題是很簡單的,都很經常使用。一個是將字符串分割爲數組,一個是將數組鏈接成字符串面試
理解堆棧和隊列這道題就不難ajax
綁定事件是綁定在dom元素上的事件,而普通事件是非dom元素的事件。我理解是這樣的。json
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()
ie下的一些hacker寫法瀏覽器
background-color: #CC00FF; /*全部瀏覽器都會顯示爲紫色*/ background-color: #FF0000\9; /*IE六、IE七、IE8會顯示紅色*/ *background-color: #0066FF; /*IE六、IE7會變爲藍色*/ _background-color: #009933; /*IE6會變爲綠色*/
- 使用Get請求時,參數在URL中顯示,而使用Post方式,則不會顯示出來
- 使用Get請求發送數據量小,Post請求發送數據量大
call和apply接受的參數不一樣,call接受的是一個個的參數,而apply接受的一個數字型的參數app
其中設置 dataType:"json",使得返回來的數據格式爲json。若是不添加該條屬性,則返回來的爲字符串。字符串對象能夠經過eval("("+data+")")方法轉成json對象,但該方法不推薦使用,對於取數據的操做同上。區分data爲JSON對象仍是字符串,能夠經過alert語句進行打印,若是是Object object就是JSON對象,若是將內容顯示出來則爲字符串。
通俗的講,事件就是onclick,onmouseover,onmouseout,等就是事件,委託呢,就是讓別人來作,這個事件原本是加在某些元素上的,然而你卻加到別人身上來作,完成這個事件。
6中有細講這兩個
javascript的本地對象有如下一些:
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
內置對象,即 Global 和 Math
全部的BOM和DOM對象都是宿主對象
document ready事件表示文檔結構已經加載完成,表示能夠對dom進行操做。document load事件表示文檔結構之外的包括圖片在內的全部元素都加載完成。
這是記錄的一些關於這些題目的記錄,也有些偏頗。歡迎來噴!!!