欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript最全公共方法匯總并解析(前端開發(fā)收藏必備)

 更新時間:2024年06月15日 15:45:39   作者:經(jīng)海路大白狗  
JavaScript掌握各種常用的公共方法更是提升開發(fā)效率和代碼質(zhì)量的關(guān)鍵,無論你是初學者還是資深開發(fā)者,了解并熟練運用這些方法都能讓你的代碼更加簡潔、高效,本篇博客將為你詳細匯總并解析最全的JavaScript公共方法,涵蓋數(shù)組、對象、字符串、日期等各個方面的常用技巧

引言

在前端開發(fā)中,JavaScript是必不可少的一部分,而掌握各種常用的公共方法更是提升開發(fā)效率和代碼質(zhì)量的關(guān)鍵。無論你是初學者還是資深開發(fā)者,了解并熟練運用這些方法都能讓你的代碼更加簡潔、高效。本篇博客將為你詳細匯總并解析最全的JavaScript公共方法,涵蓋數(shù)組、對象、字符串、日期等各個方面的常用技巧。希望通過這篇文章,能為你的前端開發(fā)之路提供有力的幫助,成為你開發(fā)過程中不可或缺的參考指南。

下面開始啦,建議收藏起來,前端開發(fā)項目必備。

1 安裝js-tool-big-box工具包

1.1 安裝

我已經(jīng)將所有公共方法,按模塊的形式,集成到了js-tool-big-box工具包中,大家不比擔心安裝后會使項目體積變大,不會的。

執(zhí)行安裝命令:

npm i js-tool-big-box

npm包地址:js-tool-big-box - npm (npmjs.com) 包中提供了工具的學習文檔地址以及作者

1.2 截至目前的方法集合 

 那么js-tool-big-box這個方法庫現(xiàn)在都有哪些公共方法可以供大家使用了呢,我們看一下下面的圖就知道啦

2 時間日期類 

想要使用時間日期類的公共方法,需要先在項目中導入 timeBox 對象,所有的時間日期類方法都在這個對象下面,引入代碼如下:

import { timeBox } from 'js-tool-big-box';

2.1 更靈活的年月日時分秒

const year = timeBox.getMyYear(null, '年');
console.log(year); // 2024年
const yearALB = timeBox.getMyYear(null, '???');
console.log(yearALB); // 2024???
const month = timeBox.getMyMonth(null, '月');
console.log(month); // 05月
const date = timeBox.getMyDate(null);
console.log(date); // 23
const hour = timeBox.getMyHour(null, 'hour');
console.log(hour); // 20hour
const minutes = timeBox.getMyMinutes(null, 'min');
console.log(minutes); // 10min
const seconds = timeBox.getMySeconds(null, '秒');
console.log(seconds); // 10秒

2.2 日期時間轉(zhuǎn)換

const dateTime1 = timeBox.getFullDateTime(null, 'YYYY-MM-DD', '/');
console.log(dateTime1); // 2024/05/22
const dateTime2 = timeBox.getFullDateTime(null, 'YYYY-MM-DD hh:mm', '~');
console.log(dateTime2); // 2024`05`22 20:11
const dateTime3 = timeBox.getFullDateTime(null, 'YYYY-MM-DD hh:mm:ss');
console.log(dateTime3); // 2024-05-22 20:11:22

2.3 個性的時間組合 

const hourShow= timeBox.getMyDate(null, '點');
const minShow= timeBox.getMyMinutes(null, '分');
const timeShow = `${hourShow} ${minShow}`; // 8點 22分

2.4  某個時間距離現(xiàn)在

const unitObj = {
  beforeUnit: 'before',
  afterUnit: 'after',
  yearUnit: 'year',
  monthUnit: 'month',
  dateUnit: ' days ',
  hourUnit: 'hour',
  minutesUnit: 'min',
  secondUnit: 'sec'
}
const showData = timeBox.getDistanceNow('1908-12-02 06:00:00', unitObj); // 溥儀登基啦
console.log('溥儀登基詳細時間===', showData); 
const showData1 = timeBox.getDistanceNow('2030-04-19 20:15:59');  // 移民火星啦
console.log('人類移民火星詳細時間===', showData1);

注意:這個方法返回的是詳細的時間對象,需要甄別使用哪個具體的詳細信息。

2.5  平年還是閏年

const leapYear = timeBox.getLeapYear('2024-12');
console.log('=-=2024年是', leapYear ? '閏年': '平年'); // 閏年
const leapYear1 = timeBox.getLeapYear('2019'); 
console.log('=-=2019年是', leapYear1 ? '閏年': '平年'); // 平年
const leapYear2 = timeBox.getLeapYear(null); 
console.log('=-=今年是', leapYear2 ? '閏年': '平年'); // 閏年

2.6 指定月份的天數(shù) 

const days = timeBox.getDaysInMonth('2023', 11);
console.log('2023年12月的天數(shù)===', days); // 31
const days1 = timeBox.getDaysInMonth(null, 1);
console.log('今年2月的天數(shù)===', days1);   // 29

2.7 屬相

const bornAnimal = timeBox.getAnimalOfBorn('2025');
console.log('2025年出生的人屬相是:==-==', bornAnimal); // snake
const bornAnima2 = timeBox.getAnimalOfBorn('1990-10-25');
console.log('1990年出生的人屬相是:==-==', bornAnima2); // house

2.8 獲取指定年份的法定節(jié)假日 

const holiday2024 = timeBox.getHoliday('2024');console.log('----', holiday2024);

注意:這個方法只能獲取2024年以后的法定節(jié)假日顯示 

3 頁面存儲類

 頁面存儲包含獲取瀏覽器url的參數(shù),cookie設(shè)置、獲取、刪除等,localStorage的設(shè)置,獲取等。想使用存儲類的公共方法,需要先在項目中導入 storeBox 對象:

import { storeBox } from 'js-tool-big-box';

3.1 獲取瀏覽器url參數(shù)值

以  http://127.0.0.1:8080/#/404?type=text&go2=232323&q=my2521 為例

const param = storeBox.getUrlParam('q');console.log('獲取到q的參數(shù)為:::', param); // my2521

3.2 設(shè)置cookie

storeBox.setCookie('school', '我的中學', 1000*10);storeBox.setCookie('name', 'zhangsan');

3.3 獲取cookie

const myCookie1 = storeBox.getCookie('school');console.log('我設(shè)置過的school是::', myCookie1); // 我的中學

3.4 刪除cookie

storeBox.deleteCookie('name');const myNmaeCookie = storeBox.getCookie('name');console.log('我已把name這個cookie刪了::', myNmaeCookie);

3.5 設(shè)置localStorage

storeBox.setLocalstorage('today', '星期一', 1000*6);

3.6 獲取localStorage的值

const today = storeBox.getLocalstorage('today');console.log('6秒后獲取的值===', today);

4 事件相關(guān)

 目前事件相關(guān)的公共方法主要是有防抖和節(jié)流2個,需要現(xiàn)在項目中導入 eventBox 對象:

import { eventBox } from 'js-tool-big-box';

 4.1 防抖

<template>
  <div>
    <input @keyup="handleChange" v-model="inputVal" />
  </div>
</template>
 
<script>
import { eventBox } from 'js-tool-big-box';
 
export default {
  name: 'dj',
  data () {
    return {
      inputVal: ''
    }
  },
 
    created() {
        this.myDebounce = eventBox.debounce((data) => {
          this.sendAjax(data);
        }, 2000);
      },
 
methods: {
    handleChange(event) {
      const val = event.target.value;
      this.myDebounce(val);
    },
    sendAjax(data) {
      console.log('發(fā)送時間::', new Date().getTime());
      console.log('發(fā)送請求:', data);
    },
  }
}
</script>

4.2 節(jié)流

<script>
import { eventBox } from 'js-tool-big-box';
 
export default {
  name: 'dj',
  data () {
    return {
      inputVal: ''
    }
  },
  created() {
    this.myThrottle = eventBox.throttle((data) => {
      this.sendAjax(data);
    }, 2000);
  },
  methods: {
    handleChange(event) {
      const val = event.target.value;
      this.myThrottle(val);
    },
    sendAjax(data) {
      console.log('發(fā)送時間::', new Date().getTime());
      console.log('發(fā)送請求:', data);
    },
  }
}
</script>

5 Number相關(guān)方法學習

工具庫也提供了Number相關(guān)的方法學習,需要先在項目中導入 numberBox  對象:

import { numberBox } from 'js-tool-big-box';

5.1 千分號分割

const num1 = numberBox.formatNumberWithCommas(13498345.333, 2);
console.log('num1轉(zhuǎn)化后:', num1); // 13,498,345.33
const num11 = numberBox.formatNumberWithCommas(13498345.333);
console.log('num11轉(zhuǎn)化后:', num11); // 13,498,345

5.2  判斷是否大于0

const num2 = numberBox.isGreater0('-33.23');
console.log('-33.23是大于0的數(shù)字嗎?', num2); // false
const num3 = numberBox.isGreater0('33.23s'); 
console.log('33.23s是大于0的數(shù)字嗎?', num3); // false
const num33 = numberBox.isGreater0(2024); 
console.log('2024是大于0的數(shù)字嗎?', num33); // true

5.3 判斷是否大于0的整數(shù)

const num4 = numberBox.isGreater0Integer('33.23');
console.log('33.23是大于0的整數(shù)嗎?', num4);  // false
const num5 = numberBox.isGreater0Integer(99);
console.log('99是大于0的整數(shù)嗎?', num5);  // true

5.4 生成指定范圍內(nèi)的隨機數(shù)

// 生成80到100的隨機整數(shù)
const num6 = numberBox.getRandomNumber(80, 100);
console.log('80到100的隨機整數(shù)::', num6); // 86
// 生成50到56并帶有2位小數(shù)的隨機數(shù)
const num7 = numberBox.getRandomNumber(50, 56, 2);
console.log('50到56并帶有2位小數(shù)的隨機數(shù)::', num7); // 55.57

5.5  生成指定位數(shù)的隨機數(shù)

// 生成一個4位的隨機數(shù)字
const num66 = numberBox.generateUniqueRandomNumber(4);
console.log('生成的4位的隨機數(shù)字:', num66); // 6257
// 生成一個6位的隨機數(shù)字
const num77 = numberBox.generateUniqueRandomNumber(6);
console.log('生成的6位的隨機數(shù)字:', num77); // 371420

5.6 數(shù)字轉(zhuǎn)小寫中文

const num8 = numberBox.numberToChinese('456788.12');
console.log('看一下456788.12的中文小寫展示:', num8);
const num9 = numberBox.numberToChinese(122456788.5);
console.log('看一下122456788.5的中文小寫展示:', num9);

5.7 數(shù)字轉(zhuǎn)大寫中文

const num10 = numberBox.numberToChinese(22456788.5, 'upper');console.log('看一下22456788.5的中文大寫展示:', num10);

6 字符串相關(guān)方法學習

 字符串相關(guān)的方法呢,js-tool-big-box工具庫對外提供了 stringBox 對象,可供開發(fā)者使用:

import { stringBox } from 'js-tool-big-box';

6.1 字符串反轉(zhuǎn)

const string1 = stringBox.reverseString('Hello, World!');console.log('需要反轉(zhuǎn)的字符串::', string1);

6.2 橫崗轉(zhuǎn)小駝峰

const string2 = stringBox.hyphenToCamelCase('my-class-name', 'small');console.log('小駝峰轉(zhuǎn)換::', string2);

6.3 橫崗轉(zhuǎn)大駝峰

const string3 = stringBox.hyphenToCamelCase('my-class-name', 'big');console.log('大駝峰轉(zhuǎn)換::', string3);

6.4 版本號比較

const versionResult = stringBox.compareVersions('1.0.21', '1.0.12');
console.log('1.0.21和1.0.12比較:', versionResult); // 1
const versionResult1 = stringBox.compareVersions('1.2.21', '1.3.12');
console.log('1.2.21和1.3.12比較:', versionResult1); // -1
const versionResult2 = stringBox.compareVersions('1.1.3', '1.1.3.1');
console.log('1.1.3和1.1.3.1比較:', versionResult2); // -1
const versionResult3 = stringBox.compareVersions('1.1.3', '1.1.3');
console.log('1.1.3和1.1.3比較:', versionResult3); // 0

6.5 獲取字符串字節(jié)長度

注意:這里不是獲取字符串的長度,是字節(jié)長度,注意區(qū)分

const str1 = 'Hello world!!!';
const str2 = '我是The first one,?? HaHa~';
const str1ByteLength = stringBox.byteLength(str1);
const str2ByteLength = stringBox.byteLength(str2);
console.log('Hello world!!!的字節(jié)長度是:', str1ByteLength); // 14
console.log('我是The first one,?? HaHa~:', str2ByteLength); // 30

6.6 生成UUID

const myUUID1 = stringBox.generateUUID();
console.log('獲取到的uuid值第一次', myUUID1);
// 8a556cd8-4c53-38dd-149d-38a32fe27cb9

6.7 通過身份證號獲取生日、性別和年齡

const cardStr = '53010219200508011XF';
const idCardObj = stringBox.getInfoByIdCard(cardStr);
console.log('此人身份詳情:', idCardObj);

6.8 字符串中間加星號遮蓋

const cardStr = '53010219200508011X';
const phone = '13344445555';
const cardStrMask = stringBox.maskString(cardStr, 4, 4, '*', 6);
const phoneMask = stringBox.maskString(phone, 4, 4, '*', 3);
console.log('身份證號加星后為:', cardStrMask);
console.log('手機號加星后為:', phoneMask);

7 正則驗證相關(guān)方法學習

之前我們經(jīng)常需要寫正則表達式做一些驗證,現(xiàn)在好了,我們有了公共方法,再也不用四處找去了,工具庫提供了 matchBox  對象

import { matchBox } from 'js-tool-big-box';

7.1 郵箱驗證

const email1 = '232322@qq.com';
const email2 = '232322qq.ff';
const emailResult1 = matchBox.email(email1);
const emailResult2 = matchBox.email(email2);
console.log('emailResult1驗證結(jié)果:', emailResult1); // true
console.log('emailResult2驗證結(jié)果:', emailResult2); // false

7.2 手機號驗證

const phone1 = '13813313212';
const phone2 = '2381331320';
const phoneResult1 = matchBox.phone(phone1);
const phoneResult2 = matchBox.phone(phone2);
console.log('phoneResult1驗證結(jié)果:', phoneResult1); // true
console.log('phoneResult2驗證結(jié)果:', phoneResult2); // false

7.3 url格式驗證

const url1 = 'https://aa.test.com/user?q=3';
const url2 = '//33.co m/ user';
const urlResult1 = matchBox.url(url1);
const urlResult2 = matchBox.url(url2);
console.log('urlResult1驗證結(jié)果:', urlResult1); // true
console.log('urlResult2驗證結(jié)果:', urlResult2); // false

7.4 身份證號碼格式驗證

const idCard1 = '120333199007712322x';
const idCard2 = '220333299007712322';
const idCardResult1 = matchBox.idCard(idCard1);
const idCardResult2 = matchBox.idCard(idCard2);
console.log('idCardResult1驗證結(jié)果:', idCardResult1); // false
console.log('idCardResult2驗證結(jié)果:', idCardResult2); // true

7.5 IP地址格式驗證

const ip1 = '192.168.1.111';
const ip2 = '333.168.299.0';
const ipResult1 = matchBox.ip(ip1);
const ipResult2 = matchBox.ip(ip2);
console.log('ipResult1驗證結(jié)果:', ipResult1); // true
console.log('ipResult2驗證結(jié)果:', ipResult2); // false

7.6 郵政編碼驗證

const postal1 = '075616';
const postal2 = '956s6';
const postalResult1 = matchBox.postal(postal1);
const postalResult2 = matchBox.postal(postal2);
console.log('postalResult1驗證結(jié)果:', postalResult1); // true
console.log('postalResult2驗證結(jié)果:', postalResult2); // false

7.7 是否Unicode字符

const code1 = 'A';
const code2 = '??';
const code3 = '???♂?';
const code1Result = matchBox.checkUnicode(code1);
const code2Result = matchBox.checkUnicode(code2);
const code3Result = matchBox.checkUnicode(code3);
console.log('A是不是一個Unicode character?', code1Result);
console.log('??是不是一個Unicode character?', code2Result);
console.log('???♂?是不是一個Unicode character?', code3Result);

8 發(fā)送請求相關(guān)

 目前正常的Ajax還沒有整理,fetch有自己的請求方法,很好用,所以這里只是封裝了JSONP請求的公共方法,js-tool-big-box對外供了 ajaxBox 對象供開發(fā)者使用:

import { ajaxBox } from 'js-tool-big-box';

8.1 發(fā)送JSONP跨域請求

ajaxBox.sendJSONP('http://127.0.0.1:3000/users/bar', 'callback', function(data){      console.log('獲取到的JSONP請求數(shù)據(jù)', data);});

9  data數(shù)據(jù)相關(guān)方法學習

data這里就內(nèi)容會慢慢比較多,逐漸去豐富,工具庫對外提供了 dataBox 方法供開發(fā)者使用:

import { dataBox } from 'js-tool-big-box';

9.1 獲取幸運者

const peopleData = '張三0, 張三1, 張三2, 張三3, 張三4, 張三5, 張三6, 張三7, 張三8, 張三9, 張三10, 張三11, 張三12, 張三13, 張三14, 張三15, 張三16, 張三17, 張三18, 張三19, 張三20, 張三21, 張三22, 張三23, 張三24, 張三25, 張三26, 張三27, 張三27, 張三29, 張三30, 張三31, 張三32, 張三33, 張三34, 張三35, 張三36, 張三37, 張三38, 張三39, 張三40';
this.luckPeople = dataBox.luck(peopleData, 3);

9.2 復(fù)制文字到剪貼板

const text = '我在CSDN寫工具,js-tool-big-box';
dataBox.copyText(text, () => {
        // 復(fù)制成功后的業(yè)務(wù)邏輯
      }, () => {
        // 復(fù)制異常后的業(yè)務(wù)邏輯
      }

9.3 數(shù)組去重

const arr1 = [1, 2, 3, 5, 1, 2, 3, 4];
const arr2 = [1, 2, 'jim', '1', 'tom', 1, '張三', 2, '3'];
const uniqueArr1 = dataBox.uniqueArray(arr1);
const uniqueArr2 = dataBox.uniqueArray(arr2);
console.log('去重后的arr1的值為:', uniqueArr1);
// [1, 2, 3, 5, 4]
console.log('去重后的arr2的值為:', uniqueArr2);
// [1, 2, 'jim', '1', 'tom', '張三', '3']

10 瀏覽器相關(guān) 

公共方法,怎么能少的了瀏覽器相關(guān)的內(nèi)容呢,js-tool-big-box對外提供了 browserBox 對象供開發(fā)者使用:

import { browserBox } from 'js-tool-big-box';

10.1 判斷是否手機端瀏覽器

const checkBrowser = browserBox.isMobileBrowser();
console.log('當前是手機端瀏覽器嗎?', checkBrowser);

 

10.2 檢測某個元素是否處于可視范圍內(nèi)

mounted() {
  window.addEventListener('scroll', this.handleScroll);
},
methods: {
  handleScroll() {
    const isInScreen = browserBox.isElementInViewport('.demo');
    console.log('.demo在可視區(qū)域內(nèi)嗎?', isInScreen);
  },
}

最后

今天的javascript公共方法就總結(jié)到這里,已經(jīng)上萬字了,我為大家總結(jié)了js-tool-big-box的詳細學習API和講解說明,大家需要的可以去學習哦 :js-tool-big-box學習文檔

到此這篇關(guān)于JavaScript最全公共方法匯總并解析(前端開發(fā)收藏必備)的文章就介紹到這了,更多相關(guān)JavaScript最全公共方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論