字符串常用方法與倒計(jì)時(shí)

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)前面是誰,this就是誰;如果前面沒有點(diǎn),說明這個(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() 開頭刪除一項(xiàng)
    • unshift() 開頭增加一項(xiàng)
    • splice()
      • splice(1)/splice(1,3)刪除
      • splice(2,0,'xxx') 增加
      • splice(2,1,'xxx') 替換
  • 克隆和拼接
    • concat() 數(shù)組拼接
    • slice(n,m) 從索引n開始克隆到索引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)); 沒有找到返回-1 找到返回索引
    • forEach(callback,thisArg) 無返回值
      • callback(item,index,input);
    • map() 有返回值

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() 開平方
  • Math.max() 最大值
  • Math.min() 最小值

數(shù)組去重

  • 雙重循環(huán)
  • 先sort排序,相鄰兩項(xiàng)進(jìn)行對(duì)比
  • 創(chuàng)建新數(shù)組,indexOf判斷是否有某個(gè)值,沒有進(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)行比較,如果比他大,交換位置;

字符串常用的方法

通過下標(biāo)找字符

  • charAt() 下標(biāo)找字符
  • charCodeAt() 下標(biāo)找字符對(duì)應(yīng)的字符編碼

通過字符找下標(biāo)

  • indexOf() 從前往后找,找到返回對(duì)應(yīng)索引,沒找到返回-1
  • lastIndexOf() 從后往前找

字符串的截取和查找 (原字符串不發(fā)生改變)

  • str.slice(n,m) 從索引n找到索引m,包前不包后;可以取負(fù)值
  • str.substring(n,m)從索引n找到索引m,包前不包后
  • str.substr(n,m) 從索引n開始,截取m個(gè);

字符串轉(zhuǎn)數(shù)組

  • split('切割形式')

字符串轉(zhuǎn)大小寫

  • toUpperCase()轉(zhuǎn)大寫
  • toLowerCase()轉(zhuǎn)小寫

字符串跟正則配合的方法

  • 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è)置未來時(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í)候,需要做處理;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容