回調
一、回調通常至關於處理某件事情須要等待時,設置回調
二、當不要關心具體後續須要處理的事情是,設置回調
setTimeout(超時執行的函數,超時時間,執行函數的參數) 返回一個id數
console。log("a")
var id=setTimeout(fn,2000,5);//異步,必定時間後處理問題
function fn(n){
console.log(n);
clearTimeout(id);//清除這個超時函數
}
console.log("b");
複製代碼
遞歸
數組的建立
有序列表存儲若干個無序的元素,緊密型結構
將元素放在列表中的第幾位,從0開始計算,這個位置就是下表,又叫作索引值
元素被存儲在列表中,這個數據解釋元素,簡稱元
從列表中獲取這個元素的方法,使用數組名[下標]就能夠的到這個元素
把這種方式叫作下標變量
對象是一種鬆散的結構,對象是鍵值對存儲,當刪除一個元素時,對象的其餘值不會發生變化,對象是沒有元素的個數,也就是對象長度
對象中不知道存儲了多少了元素,插入和刪除不會影響其餘數據,因此時間複雜度極低,由於經過key去意義對應存儲一個值,因此獲取時,只須要根據key去取值就能夠了,因此時間複雜度極低。對於對象來講,由於每一個數據都是獨立存在,不存在關聯關係,更不能排序,因此不找因關聯關係找到對應的值
數組是緊密型結構,只用下表存儲對應的值,當刪除一個元素時,由於緊密結構的關係就會將後面的元素向前遞進
數組中能夠知道存儲了都少元素,由於插入和刪除都會影響數組的元素的位置和結構,所以插入和刪除都會影響數組的運行效率時間複雜度較高
數組的存儲是依靠下標的,因此若是須要查找一個值,就須要遍歷每個元素,已到達找到目標元素,所以時間複雜度極高,數組在使用時,由於是緊密性結構,因此你能夠根據上一個內容找到與其相關聯的元素 列入咱們能夠利用數組排序,找一個最小值,含能夠迅速找第二位最小值。
複製代碼
數組的建立方式
字面量建立數組
var arr = [4,4,5,6,7];
var arr=[];//建立空數組
由於js是弱類型語言,所以數組比較隨意能夠隨意擴張,就不須要限定個數
構造函數建立法
var arr=new Array(4,56,7,7,6,4);
var arr=Arry(1,5,6);
//若是構造函數建立數組時,既有一個參數且這個參數是一個大於0的正整數,這個數就是就是新數組的長度,而且沒有元素。若是附屬或者小鼠,就會報錯
若是是非數值,就自動放在第0位
對象建立法
var arr=new Oject([1,2,5,6])
var arr=[1,,5,6,6];
//console.log(arr.constructor===Array);
//console.log(Array.isArray(arr));//ES6
//sonsole.log(String(arr))!== "[object Object]";
//數組也是引用類型,引用地址賦值
數組在強轉或者隱式轉換位字符串時,都會轉換數組的元素
複製代碼
數組的長度
arr.length 就是數組的長度。數組中元素的個數
數組的長度就是一個可讀可寫的屬性
若是數組的長度修改比與哪來的長度學校,就會把對象多出來的元素刪除
arr.length--//刪除最爲不得一個元素
arr.length=0//清空數組總全部的元素
++//在數組尾部添加一個空元素
素組的長度比數組的最大下表大1
arr[arr.length]=5;//在數組的尾部添加5
使用for in會便利到數組的屬性
數組使用for循環遍歷,會將所壓迫得下標白能力,不遍歷數組的對象屬性,可是會遍歷到空元素,遍歷時下標
數組使用for in循環遍歷,將會全部的可枚舉屬性遍歷,若是該屬性沒有值就不會遍歷,複製代碼