js中的一些問題(3)

  1. 事件綁定和普通事件有什麼區別
普通添加事件的方法:

var btn = document.getElementById("hello");
btn.onclick = function(){
	alert(1);
}
btn.onclick = function(){
	alert(2);
}
執行上面的代碼只會alert 2 

事件綁定方式添加事件:

var btn = document.getElementById("hello");
btn.addEventListener("click",function(){
	alert(1);
},false);
btn.addEventListener("click",function(){
	alert(2);
},false);
執行上面的代碼會先alert 1 再 alert 2

小結:普通事件中的onclick是DOM0級事件只支持單個事件,會被其他onclick事件覆蓋,而事件綁定中的addEventListener是DOM2級事件可以添加多個事件而不用擔心被覆蓋
  1. 如何阻止事件冒泡和事件默認行爲
阻止冒泡:stopPropagation()
		
阻止默認:preventDefault()
		
  1. window.onload 和document ready的區別

     	$(document).ready:是DOM結構繪製完畢後就執行,不必等到加載完畢。 
     	意思就是DOM樹加載完畢,就執行,不必等到頁面中圖片或其他外部文件都加載完畢。
     	並且可以寫多個.ready。
     	window.onload:是頁面所有元素都加載完畢,包括圖片等所有元素。只能執行一次。
    
  2. = = 和===的不同
    = =是判斷值是否相等,= = =是判斷值及類型是否完全相等。

  3. JavaScript是一門什麼樣的語言,它有哪些特點?

    一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型
    
    特點:1.簡單性   2.動態性   3.跨平臺性   4.安全性
    
  4. JavaScript的數據類型都有什麼?

		1. 字符串類型 (string)
		2. 數值類型   (Number)
		3. 對象類型	 (object)
		4. 布爾類型   (boolean)
		5. 空類型     (null)
		6. 未定義類型 (undefined)
  1. 談談對this的理解

     this表示當前對象,而它的指向是根據上下文來決定的,默認指向window對象
     在這把它分爲兩類:
     全局和局部
     在全局中指向的對象只有window對象
     在局部中,對象調用指向對象,構造函數中指向實例化對象
    
  2. js繼承方式及其優缺點

     1.原型鏈繼承
     		優點:簡單,易於實現。
     		缺點: 創建子類實例時,無法向父類構造函數傳參
     2.構造函數繼承
     		優點:
     			解決了子類實例共享父類引用屬性的問題;
     			創建子類實例時,可以向父類構造函數傳參;
     			可以實現多繼承(call多個父類對象);
     		缺點:
     			只能繼承父類的實例屬性和方法,不能繼承父類原型屬性和方法
     			使用多後佔用內存過大
     3.組合繼承
     		優點:
     			函數可複用;
     			可以繼承實例屬性/方法,也可以繼承原型屬性/方法;
     			既是子類的實例,也是父類的實例;
     			不存在引用屬性共享問題;
     		缺點:內存浪費
    
  3. 同步和異步的區別?

     同步,是所有的操作都做完,才返回給用戶結果。即寫完數據庫之後,在相應用戶,用戶體驗不好。
    
     異步,不用等所有操作等做完,就相應用戶請求。即先相應用戶請求,然後慢慢去寫數據庫,用戶體驗較好。 
    
  4. 箭頭函數

(a,b,c)==>{x}    型如這樣的函數就是箭頭函數
同等與:
function(a,b,c){
		x;
}

注意:

箭頭函數與普通函數並不完全相等, 箭頭函數並沒有自己的this關鍵字,對於普通函數的this指創建的對象, 直接調用的普通函數this代表window

箭頭函數的this指的是上下文, 也就是包含箭頭函數的外層函數, 如果箭頭函數定義在全局範圍內this指window本身

箭頭函數不允許在形參列表和箭頭之間換行,否則報語法錯誤

箭頭函數與其他運算符在一起時, 可能由於解析順序導致錯誤, 因而與其他運算符在一起時應該把箭頭函數整體放在圓括號裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章