this的總結(jié)
- 當(dāng)元素身上的事件被觸發(fā)的時(shí)候薛闪,會(huì)執(zhí)行一個(gè)函數(shù)鲜屏,函數(shù)中的this指向當(dāng)前這個(gè)元素
- 自執(zhí)行函數(shù)中的this肉盹,永遠(yuǎn)指向window
- 當(dāng)函數(shù)被調(diào)用的時(shí)候昔驱,點(diǎn)前面是誰(shuí),this就是誰(shuí)上忍;如果前面沒(méi)有點(diǎn)骤肛,說(shuō)明這個(gè)函數(shù)被window調(diào)用,this就是window
- 回調(diào)函數(shù)中的this一般都是window,如果需要我們可以改變回調(diào)函數(shù)中的this指向
回調(diào)函數(shù):當(dāng)把函數(shù)的定義階段窍蓝,作為參數(shù)腋颠,傳給另一個(gè)函數(shù)的時(shí)候,這個(gè)函數(shù)就是回調(diào) callback\cb
ary.sort(function(){})
ary.forEach(function(){},thisArg)
ary.map(cb,thisArg)
數(shù)組的常用方法
- 增加吓笙,刪除和替換
- push() 末尾增加一項(xiàng)
- pop() 末尾刪除一項(xiàng)
- shift() 開(kāi)頭刪除一項(xiàng)
- unshift() 開(kāi)頭增加一項(xiàng)
- splice()
- splice(1)/splice(1,3)刪除
- splice(2,0,'xxx') 增加
- splice(2,1,'xxx') 替換
- 克隆和拼接
- concat() 數(shù)組拼接
- slice(n,m) 從索引n開(kāi)始克隆到索引m包前不包后
- 翻轉(zhuǎn)和排序
- reverse() 數(shù)組翻轉(zhuǎn)
- sort(function(a,b){return a-b}) 排序
- 數(shù)組轉(zhuǎn)字符串
- toString()
- join('拼接形式') 配合eval可以進(jìn)行數(shù)學(xué)運(yùn)算
- 常用但不兼容
- indexOf()
- ary.indexOf(newAry(i)); 沒(méi)有找到返回-1 找到返回索引
- forEach(callback,thisArg) 無(wú)返回值
- callback(item,index,input);
- map() 有返回值
- indexOf()
Math常用方法
- Math.round() 四舍五入取整
- Math.random() 取0~1之間的隨機(jī)小數(shù) 不包含1
- Math.round(Math.random()*(m-n)+n);取n~m之間的隨機(jī)整數(shù)包含m
- Math.floor() 向下取整
- Math.ceil() 向上取證
- Math.abs() 取絕對(duì)值
- Math.pow(2,3) 冪次方
- Math.sqrt() 開(kāi)平方
- Math.max() 最大值
- Math.min() 最小值
數(shù)組去重
- 雙重循環(huán)
- 先sort排序淑玫,相鄰兩項(xiàng)進(jìn)行對(duì)比
- 創(chuàng)建新數(shù)組,indexOf判斷是否有某個(gè)值,沒(méi)有進(jìn)行插入
- 利用對(duì)象不重名特性
- 利用對(duì)象不重名特性 for循環(huán)給對(duì)象相同屬性名的進(jìn)行次數(shù)記錄絮蒿,for...in循環(huán)拿到屬性名
插排
- 1尊搬、先從ary中取出一個(gè)left數(shù)組
- 2、遍歷ary數(shù)組土涝,與left從后往前進(jìn)行比較佛寿。如果比left小,繼續(xù)向前比但壮;比某個(gè)值大就插入到這個(gè)值的下一項(xiàng)的前面冀泻;break;如果比所有的都小蜡饵,那就插入到left數(shù)組的第一個(gè)
快排
- 1腔长、先拿到中間索引——拿到中間項(xiàng)centerValue
- 2、創(chuàng)建left验残,right兩個(gè)空數(shù)組
- 3捞附、循環(huán)數(shù)組每一項(xiàng)與centerValue進(jìn)行比較,小的放left您没,大的放right
- 4鸟召、利用遞歸進(jìn)行自己調(diào)用自己
- 5、當(dāng)ary.length<=1停止拆分
冒排
1氨鹏、兩重循環(huán)欧募,第一重循環(huán)代表的是輪數(shù),第二重循環(huán)代表的次數(shù)仆抵,比較的次數(shù)在一次次的減少跟继;
2、 每次比較的時(shí)候镣丑,都拿當(dāng)前項(xiàng)跟后一項(xiàng)進(jìn)行比較舔糖,如果比他大,交換位置莺匠;
字符串常用的方法
通過(guò)下標(biāo)找字符
- charAt() 下標(biāo)找字符
- charCodeAt() 下標(biāo)找字符對(duì)應(yīng)的字符編碼
通過(guò)字符找下標(biāo)
- indexOf() 從前往后找金吗,找到返回對(duì)應(yīng)索引,沒(méi)找到返回-1
- lastIndexOf() 從后往前找
字符串的截取和查找 (原字符串不發(fā)生改變)
- str.slice(n,m) 從索引n找到索引m,包前不包后趣竣;可以取負(fù)值
- str.substring(n,m)從索引n找到索引m摇庙,包前不包后
- str.substr(n,m) 從索引n開(kāi)始,截取m個(gè)遥缕;
字符串轉(zhuǎn)數(shù)組
- split('切割形式')
字符串轉(zhuǎn)大小寫(xiě)
- toUpperCase()轉(zhuǎn)大寫(xiě)
- toLowerCase()轉(zhuǎn)小寫(xiě)
字符串跟正則配合的方法
- replace(字符串/正則卫袒,替換成什么) 字符串替換
- search(查找的字符串/正則)
- split(切割形式/正則)
- match(字符串/正則) 把捕獲的內(nèi)容,以數(shù)組的形式返回单匣;
- 捕獲一個(gè)夕凝,返回?cái)?shù)組(item烤蜕,index,input)迹冤;
- 捕獲不到讽营,返回null
i++ 和 ++i
- i++ 先運(yùn)算 再自增
- ++i 先自增 再運(yùn)算
定時(shí)器
- setInterval(clearInterval) 隔一段時(shí)間觸發(fā)一次
- setTimeout(clearTimeout) 只執(zhí)行一次
日期對(duì)象
- 定義一個(gè)日期對(duì)象 var oDate=new Date()
- 獲取現(xiàn)在距離 1970年1月1日 00:00:00 的毫秒數(shù)
- 格林尼治時(shí)間 oDate.getTime();
- oDate.getFullYear() 年
- oDate.getMonth()+1月
- oDate.getDate()日
- oDate.getDay() 星期日是0
- oDate.getHours()時(shí)
- oDate.getMinutes();分
- oDate.getSeconds();秒
倒計(jì)時(shí)
- 設(shè)置未來(lái)時(shí)間 new Date('2018/10/12 18:00:00')
- 求毫秒差
- new Date('2018/10/12 18:00:00')-new Date()
- new Date('2018/10/12 18:00:00').getTime()-new Date().getTime()
- 秒轉(zhuǎn)換:把秒轉(zhuǎn)成 天,時(shí)泡徙,分橱鹏,秒 ; 主要用到%的思想堪藐;
- 注意:當(dāng)秒位負(fù)數(shù)的時(shí)候莉兰,需要做處理;
- 求毫秒差