前端开发中实用的JavaScript函数

前言

开发中为了提高开发效率并编写更清晰、可复用、可维护的代码,我们经常使用各种自定义函数,记录一下在前端开发中实用的JavaScript函数。

1、将当前日期转换为星期几

/**
 * 将日期转为星期几
 * @param {number} timestamp 时间戳,如果不传取当前日期
 */
function getCurrentDayOfWeek(timestamp) {
    const daysOfWeek = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    const currentDate = timestamp ? new Date(timestamp) : new Date();
    const dayOfWeekIndex = currentDate.getDay();

    return daysOfWeek[dayOfWeekIndex];
}

getCurrentDayOfWeek(); // 星期一

2、计算距离当前日期的天数

/**
 * 计算距离当前日期的天数
 * @param {number} timestamp 时间戳
 */
function getDaysFromTimestamp(timestamp) {
    const now = new Date().getTime();
    const timeDifference = now - timestamp;
    const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24));
    return daysDifference;
}

getDaysFromTimestamp(1627474800000); // 360

3、日期格式化

/**
 * 日期格式化
 * @param {object} options 函数的参数项
 * @param {number} options.timestamp 时间戳, 默认当前日期
 * @param {string} options.format 时间戳,默认值 'yyyy-MM-dd hh:mm:ss'
 */
function formatDate(options = {}) {
    const { timestamp, format = 'yyyy-MM-dd hh:mm:ss'} = options;
    const date = timestamp ? new Date(timestamp) : new Date();
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');

    return format.replace('yyyy', year)
        .replace('MM', month)
	.replace('dd', day)
	.replace('hh', hours)
	.replace('mm', minutes)
	.replace('ss', seconds);
}

formatDate() // 2022-10-05 20:20:00
formatDate({timestamp: 1627474800000}) // 2021-07-28 20:20:00
formatDate({timestamp: 1627474800000, format: 'yyyy-MM'}) // 2021-07
formatDate({format: 'yyyy-MM'}) // 2022-10

4、生成唯一标识符(UUID)

生成唯一标识符对于跟踪对象或数据非常有用。generateUUID函数生成符合UUID格式的唯一标识符,可用于唯一标识数据或对象。

function generateUUID() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        const r = Math.random() * 16 | 0,
            v = c === 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}

generateUUID(); // fdec3388-7262-4db8-a655-2ef1efef79bb

5、判断是否为整数

在某些情况下,你可能需要检查一个值是否为整数。isInteger函数接受一个值作为参数,并返回布尔值,指示该值是否为整数。

function isInteger(value) {
    return Number.isInteger(value);
}

isInteger(13.5); // false
isInteger('13'); // false
isInteger(13); // true

6、将首字母大写

有时,你可能需要将字符串中的首字母大写,以满足特定的文本格式。capitalizeFirstLetter函数接受一个字符串作为参数,并返回一个新字符串,其中首字母大写。

function capitalizeFirstLetter(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
}

capitalizeFirstLetter('sibert is a Web Front-End Developer'); // Sibert is a Web Front-End Developer

7、随机生成指定范围内的整数

有时,你可能需要生成指定范围内的整数,而不仅仅是整数。getRandomInt函数可以接受min和max两个参数,然后生成一个在这两个值之间的随机整数。

function getRandomInt(min, max) {
    if (min > max) {
        [min, max] = [max, min];
    }
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

getRandomInt(100, 0); // 35

8、判断是否为闰年

在某些情况下,你可能需要判断某一年是否为闰年。isLeapYear函数接受一个年份作为参数,并返回布尔值,指示该年份是否为闰年。

function isLeapYear(year) {
    return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
}

isLeapYear(2022);
// false
赞(0) 打赏

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫