1.IE和標準DOM事件流的區別javascript
1、IE的事件流叫事件冒泡,事件開始時由最具體的元素接受,而後逐級向上傳播到document。java
DOM的事件流包括三個階段,事件捕獲階段、處於目標階段、事件冒泡階段,實際的目標在捕獲階段不會接收到事件。ajax
2、IE中運行下列兩個方法時的this指的是window,而DOM中this指的是當前元素。json
3、IE指定和刪除事件處理程序的方法爲attachEvent()和detachEvent(),DOM中爲addEventListener()和removeEventListener()。數組
4、IE中這兩個方法的參數都要加on,好比onclick。而DOM中不用加on,爲click。
瀏覽器
2.IE和標準下有哪些兼容性的寫法:安全
var event =event || window.event;服務器
var target = event.target || event.srcElement;閉包
阻止默認行爲: event.preventDefault || event.returnValue=false;app
阻止冒泡行爲: event.stopPropagation || event.cancelBubble=true;
3.ajax請求的時候get和post方式的區別:
1、get方式用戶能在URL中看到提交的數據,post不能看到。
2、對於get方式服務器端使用Request.QueryString來獲取變量的值,對於post方法服務器端使用Request.form來獲取變量的值
3、get傳輸數據量小,不大於2kb,post無限制
4、get安全性差、速度快,post安全性高、速度慢。
4.call和apply的區別:
apply的參數必須是數組或者Arguments對象。
5.ajax請求時,如何解釋json數據
可使用eval(),可是不推薦,有嚴重的性能問題和安全性問題。
可使用JSON.parse(),推薦。
6.B繼承A的方法:
//寄生組合式繼承
function inherit(subType,superType){
var prototype = Object(superType.prototype)//建立對象
prototype.construcor =subType;//加強對象
subType.prototype=prototype;//指定對象
}
function SuperType(name){
}
function SubType(name,age){
SuperType.call(this,name);
this.age=age;
}
inherit(SubType,SuperType);
//組合繼承
subType.prototype=new superType();
function subType (argument) {
superType.call(this,argument);
}
7.獲取非行間樣式的函數
// 獲取非行間樣式
function getStyle (obj,attr) {
if (obj.currentStyle) {
return obj.currentStyle[attr];//兼容IE瀏覽器
}else{
return obj.getComputedStyle(obj,null)[attr];//其餘瀏覽器 obj後面的參數是僞類,好比:after,不須要就爲null
}
}
8.事件委託是什麼
利用事件冒泡,將自身事件交給父級元素來處理,這樣能夠提升頁面性能。
好比將ul中li的onclick事件交個ul來處理。
9.閉包是什麼,有什麼特性,對頁面有什麼影響
閉包是有權訪問另外一個函數做用域中的變量的函數。建立閉包的常見方式,是在一個函數內部建立另外一個函數。
閉包特性:function a(){
return function b(){}
}
a中有一個b函數。a返回b函數。這就是閉包。
函數b的存在會讓,a函數執行而且返回b後,不會被js的垃圾回收機制所回收,由於b依賴a中的變量。
對頁面影響:閉包函數比通常函數會佔用更多內存,過分使用閉包可能會讓內存佔用過多。
10.添加 刪除 替換 插入到某個接點的方法
11.jsonp和ajax的異同:
jsonp和ajax都是請求一個URL,而後把服務器返回的數據進行處理。
不一樣:ajax的核心是經過XMLHttPRequest獲取非本頁的內容,而jsonp是經過動態的建立script標籤來調用服務器提供的js腳本
12.javascript的本地對象,內置對象和宿主對象
本地對象包括:number 、string、boolean、function、object、error、regexp、array等
內置對象:global、math
宿主對象:其他的全部包括document、window