我將js所有的函數(shù)方法分為四類:數(shù)學(xué)函數(shù)、日期函數(shù)、字符串函數(shù)、數(shù)組函數(shù)
數(shù)學(xué)函數(shù)
-
整數(shù): parseInt(number)
將傳入的數(shù)字轉(zhuǎn)換為整數(shù)例1:獲取π的整數(shù)
let num = parseInt(3.1415926535) console.log(num) // 3例2:是否會四舍五入?
答:不會let num = parseInt(3.9) console.log(num) // 3 -
浮點(diǎn)數(shù): parseFloat(number/string)
可解析一個(gè)字符串,并返回一個(gè)浮點(diǎn)數(shù)例1:解析字符串"11月11日"
let num = parseFloat("11月11日") console.log(num) // 11 -
隨機(jī)數(shù):Math.random()
產(chǎn)生一個(gè)0 - 1之間的隨機(jī)數(shù)例1:產(chǎn)生一個(gè)隨機(jī)數(shù)
let num = Math.random() console.log(num) // 0.7994840014784754例2:取50以內(nèi)的隨機(jī)數(shù)
num = Math.random() * 50 console.log(num) // 39.88130414891049例3:取50以內(nèi)的整數(shù)隨機(jī)數(shù)
let num = parseInt(Math.random() * 50) console.log(num) // 37 -
最大值:Math.max(number1,number2)
獲取最大值例1:輸出兩個(gè)數(shù)字中的最大值
let num = Math.max(5, 10) console.log(num) // 10例2:輸出數(shù)組中最大值
let arr = [1, 3, 5, 10] let num = Math.max(...arr) // ...arr 中的...叫擴(kuò)展運(yùn)算符,主要作用是將一個(gè)數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列,詳情請轉(zhuǎn)至本文的數(shù)組函數(shù)(1. 擴(kuò)展運(yùn)算符)中 console.log(...arr) // 1 3 5 10 console.log(num) // 10 -
最小值:Math.min(number1,number2)
獲取最小值例1:輸出兩個(gè)數(shù)字中的最小值
let num = Math.min(5, 10) console.log(num) // 5例2:輸出數(shù)組中最小值
let arr = [1, 3, 5, 10] let num = Math.min(...arr) // ...arr 中的...叫擴(kuò)展運(yùn)算符,主要作用是將一個(gè)數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列 console.log(...arr) // 1 3 5 10 console.log(num) // 1 -
四舍五入:round()
獲取一個(gè)數(shù)字四舍五入后的整數(shù)例1:將數(shù)字進(jìn)行四舍五入
const num = Math.round(2.99) console.log(num) // 3
日期函數(shù)
-
詳細(xì)日期:new Date()
獲取當(dāng)前日期例1:獲取當(dāng)前日期
let date = new Date() console.log(date) // Mon Feb 13 2023 16:38:53 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) -
時(shí)間戳:getTime()
獲取當(dāng)前日期的時(shí)間戳
時(shí)間戳:是指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù)例1:獲取當(dāng)前日期的時(shí)間戳
let date = new Date() let timeStamp = date.getTime() console.log(timeStamp) // 1676277638378 -
年:getFullYear()
獲取當(dāng)前年份例1:獲取當(dāng)前年份
let date = new Date() let year= date.getFullYear() console.log(year) // 2023 -
月:getMonth()
獲取當(dāng)前月份例1:獲取當(dāng)前月份
let date = new Date() let month = date.getMonth() + 1 console.log(month ) // 2問題: 為什么獲取當(dāng)前月份要+1?
解答:因?yàn)樵路菔?(一月) 到 11(十二月) 之間的一個(gè)整數(shù),獲取的是下標(biāo),所以要+1 -
日:getDate()
獲取當(dāng)前日例1:獲取當(dāng)前日
let date = new Date() let day= date.getDate() console.log(day) // 13 -
時(shí):getHours()
獲取當(dāng)前小時(shí)例1:獲取當(dāng)前小時(shí)
let date = new Date() let hour= date.getHours() console.log(hour) // 16 -
分:getMinutes()
獲取當(dāng)前分例1:獲取當(dāng)前分
let date = new Date() let minute= date.getMinutes() console.log(minute) // 51 -
秒:getSeconds()
獲取當(dāng)前秒例1:獲取當(dāng)前秒
let date = new Date() let second= date.getSeconds() console.log(second) // 59 -
毫秒:getMilliseconds()
獲取當(dāng)前毫秒例1:獲取當(dāng)前毫秒
let date = new Date() let millisecond= date.getMilliseconds() console.log(millisecond) // 59 -
星期: getDay()
獲取當(dāng)前星期例1:獲取當(dāng)前星期
let date = new Date() let weekday= date.getDay() console.log(weekday) // 1
字符串函數(shù)
-
索引:indexof()
對字符串從左到右依次進(jìn)行索引,將第一個(gè)匹配的字符下標(biāo)進(jìn)行返回,如果不包含,返回-1。例1:以下字符串中搜索是否包含”老“
let str = '告訴老墨,我要吃魚' console.log(str.indexOf('老')) // 2 -
索引:lastIndexOf()
對字符串從右往左依次進(jìn)行索引,將最后一個(gè)匹配的字符下標(biāo)進(jìn)行返回,如果不包含,返回-1。例1:通過indexof與lastIndexOf函數(shù)方法,搜索字母‘d’
let str = 'abcdddefg' console.log(str.indexOf('d')) // 3 console.log(str.lastIndexOf('d')) // 5 -
指定下標(biāo):charAt(index)
獲取字符串中指定下標(biāo)位置的字符例1:獲取下標(biāo)為1的字符
let str = '告訴老墨,我要吃魚' let value = str.charAt(1) console.log(value) // 訴 -
通過起始下標(biāo)截取:substring(startIndex, endIndex)
截取startIndex與endIndex之間的字符串(不包含endIndex)例1:截取下標(biāo)1與3的字符
let str = '告訴老墨,我要吃魚' let value = str.substring(1, 3) console.log(value) // 訴老 -
通過長度截?。簊ubstr(index, length)
截取從index開始,length長度的字符例1:從下標(biāo)為1處開始,截取3個(gè)字符
let str = '告訴老墨,我要吃魚' let value = str.substr(1, 3) console.log(value) // 訴老墨 -
替換:replace(oldStr, newStr)
將字符串中某字符替換例1:將以下字符串中的”老“換成“小”
let str = '告訴老墨,我要吃魚' let value = str.replace('老', '小') console.log(value) // 告訴小墨,我要吃魚 -
字符串轉(zhuǎn)換為數(shù)組:split()
將字符串按字符拆分為數(shù)組例1:不傳參時(shí)
let str = '告訴老墨,我要吃魚' let value = str.split() console.log(value) // ['告訴老墨,我要吃魚']例2:參數(shù)為 '' 時(shí)
let str = '告訴老墨,我要吃魚' let value = str.split('') console.log(value) // ['告', '訴', '老', '墨', ',', '我', '要', '吃', '魚']例3:參數(shù)為字符串中存在的某字符時(shí),比如”老“
let str = '告訴老墨,我要吃魚' let value = str.split('老') console.log(value) // ['告訴', '墨,我要吃魚'] -
轉(zhuǎn)換為小寫:toLowerCase()
將字符串所有內(nèi)容中字母統(tǒng)一轉(zhuǎn)換為小寫例1:將以下字符串轉(zhuǎn)換為小寫
let str = 'Hello,world!' let value = str.toLowerCase() console.log(value) // hello,world! -
轉(zhuǎn)換為大寫:toUpperCase()
將字符串所有內(nèi)容中字母統(tǒng)一轉(zhuǎn)換為大寫let str = 'Hello,world!' let value = str.toLowerCase() console.log(value) // HELLO,WORLD!
數(shù)組函數(shù)
-
擴(kuò)展運(yùn)算符:...arr
主要作用是將一個(gè)數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列。
< 它不是函數(shù),但因?yàn)楸疚闹袛?shù)學(xué)函數(shù)的(4. 最大值)方法中涉及到擴(kuò)展運(yùn)算符方法,特在此詳細(xì)介紹下!>例1:用...輸出數(shù)組
let arr = [1, 2, 3] console.log(...arr) // 1 2 3例2:合并兩個(gè)數(shù)組
let arr1 = [1, 2, 3] let arr2 = [4, 5, 6] let newArr = [ ...arr1, ...arr2] console.log(newArr) // [1,2,3,4,5,6]例3:字符串轉(zhuǎn)數(shù)組
let str = "告訴老墨,我想吃魚" console.log([...str]) // ['告', '訴', '老', '墨', ',', '我', '想', '吃', '魚'] -
頭部添加:unshift(value)
將數(shù)值添加進(jìn)數(shù)組頭部
返回值為 數(shù)組長度例1:將數(shù)字0添加進(jìn)數(shù)組頭部
let arr = [1, 2, 3] let newArr = arr.unshift(0) console.log(arr) // [0, 1, 2, 3] console.log(newArr) // 4 -
頭部刪除:shift()
數(shù)組頭部刪除一個(gè)元素,若數(shù)組為空,返回undefined
返回值為 刪除的元素例1:將數(shù)組中第一位的元素刪除
let arr = [ 1, 2, 3] let newArr = arr.shift() console.log(arr) // [2, 3] console.log(newArr ) // 1 -
尾部添加:push()
將數(shù)值添加進(jìn)數(shù)組尾部
返回值為 數(shù)組長度例1: 為數(shù)組尾部添加數(shù)字4
let arr =[0, 1, 2] let newArr = arr.push(4) console.log(arr) // [0,1,2,4] console.log(newArr') // 4 -
尾部刪除:pop()
數(shù)組尾部刪除一個(gè)元素,若數(shù)組為空,返回undefined
返回值為 刪除的元素例1:刪除數(shù)組中尾部元素
let arr = [0, 1, 2]] let newArr = arr.pop() console.log(arr) // [0, 1] console.log(newArr ) // 2 -
合并數(shù)組:concat()
將數(shù)組進(jìn)行合并例1:將以下兩個(gè)數(shù)組進(jìn)行合并
let arr1 = [1, 2, 3] let arr2 = ['a', 'b', 'c'] let newArr = arr1.concat(arr2) console.log(newArr) // [1, 2, 3, 'a', 'b', 'c'] -
轉(zhuǎn)字符串:join()
將數(shù)組轉(zhuǎn)換為字符串格式例1:將以下數(shù)組轉(zhuǎn)換為字符串, 無參數(shù) 時(shí)
let arr = ['a', 'b', 'c'] let newArr = arr1.join() console.log(newArr) // a,b,c例2:將以下數(shù)組轉(zhuǎn)換為字符串, 參數(shù)為 '' 時(shí)
let arr = ['a', 'b', 'c'] let newArr = arr1.join('') console.log(newArr) // abc -
顛倒:reverse()
將數(shù)組中元素進(jìn)行顛倒,原數(shù)組 改變例1:將以下數(shù)組顛倒
let arr = ['a', 'b', 'c'] let newArr = arr.reverse() console.log(newArr) // ['c', 'b', 'a'] console.log(arr) // ['c', 'b', 'a'] -
正序排序:sort()
對數(shù)組的元素進(jìn)行正序排序例1: 對以下數(shù)組進(jìn)行正序排序
const arr = [1, 0, 2, 4] const newArr = arr.sort() console.log(newArr) // [0, 1, 2, 4] -
截?。簊lice(startIndex,endIndex)
根據(jù)起始兩個(gè)參數(shù),對數(shù)組截取例1:將以下數(shù)組進(jìn)行截取
let arr = [1, 2, 3, 4, 5] let newArr = arr.slice(1, 3) console.log(newArr) // [2, 3] -
增加/刪除數(shù)組元素:splice(index, howmany, arr1, arr2…)
在數(shù)組中任意位置增加或刪除一個(gè)或多個(gè)元素,原數(shù)組 改變
返回值為 刪除的元素參數(shù)注解:
從index位置開始刪除howmany個(gè)元素,并將arr1、arr2…數(shù)據(jù)從index位置依次插入。howmany為0時(shí),則不刪除元素例1:刪除多個(gè)元素
let arr = [1, 2, 3, 4, 5] let newArr = arr.splice(1, 3) console.log(newArr) // [2, 3, 4] console.log(arr) // [1, 5]例2:給數(shù)組增加新元素
let arr = [1, 2, 3, 4, 5] let newArr = arr.splice(5, 0, 6, 7, 8) console.log(newArr) // [] console.log(arr) // [ 1, 2, 3, 4, 5, 6, 7, 8 ] -
遍歷 - map()
調(diào)用數(shù)組的每一項(xiàng)例1:將數(shù)組中每一位乘以2
let arr = [3, 5, 1, 4, 2] let newArr = arr.map(item => { return item * 2 }) console.log(newArr) // [ 6, 10, 2, 8, 4 ] -
遍歷 - forEach()
調(diào)用數(shù)組的每一項(xiàng)與map區(qū)別?
map通過return,給新數(shù)組開辟出獨(dú)立的內(nèi)存空間,而forEach沒有return例1:
let arr = [1, 2, 3, 4, 5] let newArr = [] arr.forEach(item => { newArr.push(item * 2) }) console.log(newArr) // [2, 4, 6, 8, 10] -
遍歷 - 過濾:filter()
過濾數(shù)組中符合條件的元素,并返回一個(gè)新的數(shù)組
例1:過濾出數(shù)組中小于3的數(shù)字let arr = [1, 2, 3, 4, 5] let newArr = arr.filter(item => item > 3) console.log(newArr) // [4, 5] -
遍歷 - every()
對數(shù)組中的每一項(xiàng)進(jìn)行判斷,若每項(xiàng)都符合,則返回true,否則返回false例1:判斷數(shù)組中每項(xiàng)元素是否全部大于3
let arr = [1, 2, 3, 4, 5] let newArr = arr.every(item => item > 3) console.log(newArr) // false -
遍歷 - some()
對數(shù)組中的每一項(xiàng)進(jìn)行判斷,若每項(xiàng)都不符合,返回false,否則返回true例1:判斷數(shù)組中每項(xiàng)元素是否全部大于3
let arr = [1, 2, 3, 4, 5] let newArr = arr.some(item => item > 3) console.log(newArr) // true -
遍歷 - 累加器:reduce()
接受一個(gè)函數(shù)作為累加器,屬于高階函數(shù)例1:數(shù)組總和
let arr = [1, 2, 3, 4, 5] let total = arr.reduce((a, b) => a + b) console.log(total) // 15 -
遍歷 - indexOf()
檢測當(dāng)前值在數(shù)組中第一次出現(xiàn)的位置索引,如果存在,返回下標(biāo),不存在返回-1例1:尋找數(shù)組中是否有數(shù)字2,如果有,需返回下標(biāo)位置
const arr = [1, 2, 3, 4, 5] console.log(arr.indexOf(2)) // 1 -
遍歷 - includes()
判斷一個(gè)數(shù)組是否包含一個(gè)指定的值,返回布爾值例1:數(shù)組中是否包含數(shù)字2
const arr = [1, 2, 3, 4, 5] console.log(arr.includes(2)) // true 以上數(shù)組函數(shù)中改變原數(shù)組的方法有:
push()、pop()、 shift()、 unshift()、 reverse()、 sort()、 splice()