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