以鏈表形式構建的堆棧數據結構,能夠實現動態增長節點,無需預先分配內存。javascript
空類型:undefined null
值類型:基本數據類型 String Number Boolean
引用型:複雜數據類型 Object Array 對象css
值類型的值在棧空間存儲,引用類型的對象在堆中存儲,地址在棧中存儲
基本類型(值類型)在調用函數的時候,傳遞的是值
引用類型,在函數調用的時候,傳遞的是地址(引用)html
null值表示一個空對象指針,而這也正是使用typeof操做符檢測null值會返回「object」的緣由,因此null放在堆中存儲前端
find方法和findIndex方法java
let numbers = [25, 30, 35, 40, 45] console.log(numbers.find(n => n > 35))//40 console.log(numbers.findIndex(n => n > 35))//3
定型數組 定型數組的length屬性是一個不可寫屬性,因此不能修改定型數組的大小es6
let buffer = new ArrayBuffer(10) let buffer2 = buffer.slice(4, 6) console.log(buffer2.byteLength)//2
閉包:實如今函數內部的函數
閉包的做用:面試
閉包的缺點:segmentfault
實現屬性私有化:
經過閉包實現數組
var ClassA = function() { var name = "yourname"; //私有屬性 var privateMethod = function() //私有方法 { alert("private"); }; //getter this.getName = function() { privateMethod(); return name; } //setter this.setName = function(newName) { name = newName; } };
不改變數組的方法:數據結構
改變數組的方法
怎麼判斷對象是數組的
function judgeArr(arr){ return Array.isArray(arr); //或者 Object.prototype.toString.call(arr) == '[object Array]' }
isArray是Array的方法
js有以下兩種數據須要常常遍歷
數組(Array)
對象(Object)
同時又提供了以下8種方法方便咱們遍歷元素
forEach方法放入break會報錯,return也沒法跳出循環
若是須要在遍歷中跳出循環,可使用Array.some()[return true時跳出循環]或者Array.every()[return false時跳出循環]
遍歷,== 或者 === 判斷便可
事件捕獲 指的是從document到觸發事件的那個節點,即自上而下的去觸發事件。相反的,事件冒泡 是自下而上的去觸發事件。綁定事件方法的第三個參數,就是控制事件觸發順序是否爲事件捕獲。true,事件捕獲;false,事件冒泡。默認false,即事件冒泡。Jquery的e.stopPropagation會阻止冒泡,意思就是到我爲止,個人爹和祖宗的事件就不要觸發了。
至於爲何會並存兩種徹底不一樣的觸發順序,是由於IE用的是冒泡,其餘都是捕獲順序。
當網頁中須要觸發事件的對象比較多的時候,爲了不內存泄漏,咱們把事件委託到其父對象上,好比li上的事件委託到ul上,也能夠稱爲交給ul進行代理。
$("ul").on("mouseover",function(e){ $(e.target).css("background-color","#ddd").siblings().css("background-color","white"); })
e.target能夠判斷事件發生的源節點。
event.target返回觸發事件的元。
event.currentTarget返回綁定事件的元素。
CSS方法
opacity: 0
經過調整透明度從視覺上隱藏元素,元素依舊佔據位置並對網頁的佈局起做用,也會影響用戶交互。visibility: hidden
設置可見或者不可見,被隱藏的元素依然會對網頁佈局起做用,但不會影響用戶交互。diaplsy: none
隱藏元素,確保元素不可見而且連盒模型也不生成,被隱藏的元素不佔據任何空間。position:absolute
配合 top 和 left 屬性,將元素移出可視區域,不會影響佈局,又能讓元素保持可操做。JS方法
DomNode.delete(Node)
經過JS來刪除DOM樹的節點,實現元素隱藏,缺點是若是要再顯示該節點,須要添加該節點參考文章
JavaScript 深拷貝性能分析 - 前端進階 - SegmentFault 思否
使用slice和concat對數組的深拷貝和淺拷貝 - 白楊-M - 博客園