[轉(zhuǎn)帖]js 中常用函數(shù)匯總(含示例)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
:[轉(zhuǎn)帖]js 中常用函數(shù)匯總(含示例)
js 中常用函數(shù)匯總(含示例)閱讀目錄
〇、前言js 在日常開發(fā)中還是比較常用的,本文將常用的 js 方法簡(jiǎn)單匯總一下,希望對(duì)你我有一點(diǎn)幫助。 一、重復(fù) / 延遲操作1.設(shè)置固定時(shí)間間隔,重復(fù)執(zhí)行(setInterval(funcRef,msecDelay))// 語(yǔ)法setInterval(function () { // 重復(fù)操作詳情。。。}, 時(shí)間間隔/ms);// 示例:每間隔 1 秒,在控制臺(tái)打印出日志setInterval(function () { console.log("重復(fù)操作執(zhí)行了")}, 1000); 2.設(shè)置固定延遲時(shí)間,單次執(zhí)行(setTimeout(funcRef,msecDelay))// 語(yǔ)法setTimeout(function () { // 延遲操作詳情}, 延遲觸發(fā)時(shí)間/ms);// 示例:延遲 2 秒,執(zhí)行記錄日志setTimeout(function () { console.log("延遲執(zhí)行內(nèi)容")}, 2000); 二、類型轉(zhuǎn)換1. 轉(zhuǎn)為 string 字符串類型(xxx.toString()、String(xxx))// 通過(guò)將 bool 類型轉(zhuǎn)為 string 示例:console.log("JS 測(cè)試輸出:");var bool=true;console.log("bool:",{"outobj":bool});console.log("bool.toString():",{"outobj":bool.toString()});console.log("String(bool):",{"outobj":String(bool)});console.log("null:",{"outobj":null});console.log("String(null):",{"outobj":String(null)});//注意,toString不能轉(zhuǎn)null和underfined.//console.log({"outobj":null.toString()});// Uncaught TypeError: Cannot read properties of null (reading 'toString')var aa = true;var str= aa + "";console.log("str:",{"outobj":str});
2. 轉(zhuǎn)為數(shù)值類型(parseInt(xxx)、parseFloat(xxx)、Number(xxx))1/2 顯式轉(zhuǎn)換 console.log("JS 測(cè)試輸出:");// Number() 可以把任意值轉(zhuǎn)換成數(shù)值,如果要轉(zhuǎn)換的字符串中有一個(gè)不是數(shù)值的字符,返回 NaNconsole.log("Number('aa123'):",{"outobj":Number("aa123")});console.log("Number('123aa'):",{"outobj":Number("123aa")});console.log("Number('123'):",{"outobj":Number("123")});console.log("Number('123.123'):",{"outobj":Number("123.123")});console.log("Number(true):",{"outobj":Number(true)});console.log("--------");// parseInt() 如果第一個(gè)字符是數(shù)字會(huì)解析直到遇到非數(shù)字結(jié)束;若第一位非數(shù)字,則返回 NaNconsole.log("parseInt('aa123'):",{"outobj":parseInt("aa123")});console.log("parseInt('123aa'):",{"outobj":parseInt("123aa")});console.log("parseInt('123.123'):",{"outobj":parseInt("123.123")});console.log("parseInt('123'):",{"outobj":parseInt("123")});console.log("parseInt(true):",{"outobj":parseInt(true)});// parseInt(string, radix); 其中 radix 可填入二進(jìn)制或十六進(jìn)制console.log("parseInt('a37f', 16):",{"outobj":parseInt("a37f", 16)});console.log("--------");// parseFloat() 把字符串轉(zhuǎn)換成浮點(diǎn)數(shù),規(guī)則類似于 parseInt()console.log("parseFloat('aa123.123'):",{"outobj":parseFloat("aa123.123")});console.log("parseFloat('123.123aa'):",{"outobj":parseFloat("123.123aa")});console.log("parseFloat('123.123'):",{"outobj":parseFloat("123.123")});console.log("parseFloat('123'):",{"outobj":parseFloat("123")});console.log("typeof-parseFloat('123'):",typeof parseFloat("123"));console.log("parseFloat(true):",{"outobj":parseFloat(true)});
2/2 隱式轉(zhuǎn)換 console.log("JS 測(cè)試輸出:");let str = "123";let num = str - 0;console.log("num:",{"outobj":num});console.log("('3' - 2)",{"outobj":("3" - 2)});console.log("('3' + 2)",{"outobj":("3" + 2)});console.log("('3' * '2')",{"outobj":("3" * "2")});console.log("('10' / '2')",{"outobj":("10" / "2")});console.log("(1 + true)",{"outobj":(1 + true)});console.log("(1 + false)",{"outobj":(1 + false)});console.log("(1 + undefined)",{"outobj":(1 + undefined)});console.log("(3 + null)",{"outobj":(3 + null)});console.log("('3' + null)",{"outobj":("3" + null)});console.log("(true + null)",{"outobj":(true + null)});console.log("(true + undefined)",{"outobj":(true + undefined)});
3. 轉(zhuǎn)為 Boolean 布爾類型(Boolean(xxx))console.log("JS 測(cè)試輸出:");// Boolean():0、''、null、undefined、NaN 會(huì)轉(zhuǎn)換成 false,其它都會(huì)轉(zhuǎn)換成 trueconsole.log("Boolean(0):",{"outobj":Boolean(0)});console.log("Boolean(1):",{"outobj":Boolean(1)});console.log("Boolean(100):",{"outobj":Boolean(100)});console.log("Boolean(''):",{"outobj":Boolean('')});console.log("Boolean(' '):",{"outobj":Boolean(' ')});console.log("Boolean(null):",{"outobj":Boolean(null)});console.log("Boolean(undefined):",{"outobj":Boolean(undefined)});console.log("Boolean(NaN):",{"outobj":Boolean(NaN)});
三、string 字符串相關(guān)1. 查詢是否包含指定字符串(xxx.indexOf(searchString[,startIndex]))// 語(yǔ)法:// searchString:要查詢的字符串// startIndex:開始查詢的位置(從前往后查),可省略stringvalue.indexOf(searchString[,startIndex])// startIndex:開始查詢的位置(從后往前查),可省略stringvalue.lastIndexOf(searchString[,startIndex])// 示例let stringvalue = "123abcdefg123abcdefg"let indexx=stringvalue.indexOf("a")let indexx2=stringvalue.indexOf("a",6)console.log("indexx:",indexx) // 輸出結(jié)果:indexx: 3console.log("indexx2:",indexx2) // 輸出結(jié)果:indexx2: 13let indexx11=stringvalue.lastIndexOf("a")let indexx22=stringvalue.lastIndexOf("a",9)console.log("indexx11:",indexx11) // 輸出結(jié)果:indexx11: 13console.log("indexx22:",indexx22) // 輸出結(jié)果:indexx22: 3 2. 大小寫轉(zhuǎn)換(xxx.toLowerCase()、xxx.toUpperCase())// 轉(zhuǎn)小寫let stringvalue = "AaBbCc";console.log(stringvalue.toLowerCase()); // 輸出結(jié)果:aabbcc// 轉(zhuǎn)大寫console.log(stringvalue.toUpperCase()) // 輸出結(jié)果:AABBCC 3. 替換指定的字符串(xxx.replace(regExpression,replaceString))let stringvalue = "abc123abc";// 替換第一個(gè)匹配的字符串console.log("stringvalue.replace('abc','ABC'):",{"outobj":stringvalue.replace("abc","ABC")});// 替換全部匹配的字符串,格式是在 xxx 處填入目標(biāo)字符串:/xxx/gconsole.log("stringvalue.replace(/abc/g,'ABC'):",{"outobj":stringvalue.replace(/abc/g,"ABC")});
4. 分隔字符串返回一個(gè)數(shù)組(xxx.split(xx))let stringvalue = "abc||def||ghi||jkl||mno";console.log("stringvalue.split('||'):",{"outobj":stringvalue.split("||")});console.log("typeof-stringvalue.split('||'):",{"outobj":typeof stringvalue.split("||")});
5. 截取字符串(xxx.substr(start[,length])、xxx.substring(start[,end]))let str = "Hello-Tony--";// 僅設(shè)置開始位時(shí),無(wú)區(qū)別console.log("str.substr(6)",{"outobj":str.substr(6)});console.log("str.substring(6)",{"outobj":str.substring(6)});// 結(jié)束位的區(qū)別:// substr(start,end) 從 start 位置開始,截取 end 位 // substring(start,end) 從 start 位置開始,截取到 end 位,且不包含 end 這一位,計(jì)數(shù)均從 0 開始console.log("str.substr(1,6)",{"outobj":str.substr(1,6)});console.log("str.substring(1,6)",{"outobj":str.substring(1,6)});console.log("str.substr(3,7)",{"outobj":str.substr(3,7)});console.log("str.substring(3,7)",{"outobj":str.substring(3,7)});
6. 取字符串中的某一位值(xxx.charAt(number))// 測(cè)試結(jié)論:無(wú)論是漢字、數(shù)字、字母,均占一個(gè)位置let str = "Hello-Tony";console.log("str.charAt(5)",{"outobj":str.charAt(5)});str = "測(cè)試字符串的長(zhǎng)度";console.log("str.charAt(5)",{"outobj":str.charAt(5)});str = "測(cè)a試e字f串b的c長(zhǎng)d度";console.log("str.charAt(5)",{"outobj":str.charAt(5)});
7. 檢查是否為數(shù)字(xxx.isNaN())console.log("isNaN(123)",isNaN(123));console.log("isNaN(-1.23)",isNaN(-1.23));console.log("isNaN(5-2)",isNaN(5-2));console.log("isNaN(0)",isNaN(0));console.log("isNaN('Hello')",isNaN("Hello"));console.log("isNaN('2005/12/12')",isNaN("2005/12/12"));
四、日期相關(guān)操作1. 時(shí)間戳(xxx.getTime())var dt = new Date("2022-12-21 23:59:59.999"); // 取當(dāng)前時(shí)間:dt = new Date();console.log("dt.getTime():",{"outobj":dt.getTime()});console.log("Number(dt):",{"outobj":Number(dt)});console.log("dt.valueOf():",{"outobj":dt.valueOf()});console.log("+dt:",{"outobj":+dt});console.log("Date.parse(dt):",{"outobj":Date.parse(dt)});
在 js 中,將時(shí)間對(duì)象轉(zhuǎn)換得到的時(shí)間戳都是 13 位的,但有時(shí)候我們也需要精確到秒的 10 位時(shí)間戳,比如微信支付用的就是 10 位的時(shí)間戳。要在 Javascript 獲得 10 位的時(shí)間戳,大致思路有兩個(gè),要么截取前 10 位,要么除以 1000。 // 將 13 位時(shí)間戳除以 1000 然后再取整,得到 10 位時(shí)間戳數(shù)字Date.parse(new Date())/1000; // 若時(shí)間戳精確到秒,則后三位為 0,直接除以 1000 即可parseInt(new Date().getTime()/1000); // 若時(shí)間戳精確到毫秒,則后三位為 不為零,除以 1000 后為帶三位小數(shù)的浮點(diǎn)數(shù),需要另外取整操作// 將 13 位時(shí)間戳轉(zhuǎn)換為字符串截取前 10 位,得到 10 位時(shí)間戳字符串(+new Date()).toString().substring(0,10); // 截取從第 0 位開始,到第九位,不包含第十位(+new Date()).toString().substr(0,10); // 從第 0 位開始截取 10 位 將時(shí)間戳轉(zhuǎn)為指定的字符串格式:(yyyy-MM-dd HH:mm:ss) // 分別取日期的各個(gè)位值,再按照目標(biāo)格式拼裝let timespan = Date.parse(new Date());let time = new Date(timespan);let yyyy = time.getFullYear();let m = time.getMonth()+1;let d = time.getDate();let h = time.getHours();let mm = time.getMinutes();let s = time.getSeconds();let strdate = yyyy +'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);// 補(bǔ)零函數(shù)function add0(m){ return m < 10 ? '0'+ m : m ;} 2. 設(shè)置已知日期的個(gè)別值var dt = new Date("2022-12-21 23:59:59.999"); // 取當(dāng)前時(shí)間:dt = new Date();dt.setDate(2)dt.setMonth(12) // 注:這是月份時(shí)會(huì)自動(dòng)加 1,若為 12,則為 一月份dt.setSeconds(57)console.log(dt.toLocaleDateString())console.log(dt.toLocaleTimeString())console.log(dt.toDateString())console.log(dt.toString())
五、數(shù)學(xué)運(yùn)算1. 數(shù)值的小數(shù)位處理(四舍五入、取整、保留 n 位小數(shù))// 直接取整console.log("parseInt(1.5)",parseInt(1.5));// 向上取整console.log("Math.ceil(1.5):",Math.ceil(1.5));// 向下取整console.log("Math.floor(1.5):",Math.floor(1.5));// 四舍五入console.log("Math.round(1.5):",Math.round(1.5));console.log("Math.round(1.4):",Math.round(1.4));// toFixed(num)返回值為string,把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字,num為指定的小數(shù)位數(shù)console.log("1.4.toFixed():",1.4.toFixed());console.log("1.5.toFixed():",1.5.toFixed());console.log("1.55.toFixed(1):",1.55.toFixed(1));console.log("1.54.toFixed(1):",1.54.toFixed(1));
2. 其他數(shù)學(xué)運(yùn)算console.log("Math.abs(-1)",Math.abs(-1)); // 絕對(duì)值console.log("Math.max(2,3):",Math.max(2,3)); // 最大值console.log("Math.min(2,3):",Math.min(2,3)); // 最小值console.log("Math.pow(2,3):",Math.pow(2,3)); // 冪次方console.log("Math.random():",Math.random()); // 0.0~1.0(不包含)的隨機(jī)數(shù)// 通過(guò) Math.random() 轉(zhuǎn)換隨機(jī)數(shù) 1~10(包含)console.log("Math.floor((Math.random()*10)+1):",Math.floor((Math.random()*10)+1));
注:暫時(shí)整理這些,后續(xù)有常用的還會(huì)添加,也歡迎你的指正和補(bǔ)充。 該文章在 2023/6/1 16:06:09 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |