JavaScript常用工具方法封装

yizhihongxing

这里是关于“JavaScript常用工具方法封装”的攻略。

基础概念

工具方法

通常所说的工具方法,是指编写的一些辅助性函数或类,用来完成一些具有通用性的操作,比如数据转换、日期格式化、字符串截断等等。

封装方法

封装方法是将一段通用的代码进行抽象,使代码可以在各种场景中共享,提高代码复用性。在 JavaScript 中,我们可以通过函数来封装代码。

常用工具方法

下面是一些常用的 JavaScript 工具方法:

  • Array.from:将一个类数组对象或可迭代对象转换成一个新的数组实例;
  • Array.isArray:用来判断一个变量是否是数组类型;
  • Object.assign:用来合并多个对象的属性,将属性复制到目标对象;
  • Object.keys:用来获取一个对象自身可枚举的属性名称列表;
  • Object.prototype.toString:用于获取一个变量的数据类型信息;
  • JSON.stringify 和 JSON.parse:用于将 JSON 字符串和 JavaScript 对象之间进行相互转换。

工具方法封装实例

示例一:时间戳格式转换

在 Web 开发中,经常需要将时间戳转换为特定的时间格式,下面是一个封装这个功能的例子:

/**
 * 时间戳格式化函数
 *
 * @param {number} timestamp - 时间戳
 * @param {string} format - 时间格式
 * @returns {string} - 格式化后的时间字符串
 */
function formatDate(timestamp, format) {
  const date = new Date(timestamp);
  const map = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds(),
    'q+': Math.floor((date.getMonth() + 3) / 3),
    'S': date.getMilliseconds()
  };
  if (/(y+)/i.test(format)) {
    format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  Object.keys(map).forEach(key => {
    if (new RegExp(`(${key})`).test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? map[key] : ('00' + map[key]).substr(('' + map[key]).length));
    }
  });
  return format;
}

这个函数主要是将时间戳转换成指定格式的时间字符串,接收两个参数:timestamp 表示时间戳,format 表示时间格式,格式化后返回一个字符串。具体使用可以这样:

const timestamp = 1612742800000;
const format = 'yyyy-MM-dd hh:mm:ss';
const formatted = formatDate(timestamp, format);
console.log(formatted); // 输出:2021-02-08 00:00:00

示例二:数字格式化输出

在 Web 开发中,经常需要对数字进行格式化输出,下面是一个封装这个功能的例子:

/**
 * 格式化数字
 *
 * @param {number} number - 要格式化的数字
 * @param {number} decimals - 小数点保留位数
 * @param {string} thousandSeparator - 千位分割符
 * @param {string} decimalSeparator - 小数点分割符
 * @returns {string} - 格式化后的数字字符串
 */
function formatNumber(number, decimals = 2, thousandSeparator = ',', decimalSeparator = '.') {
  number = Number(number || 0).toFixed(decimals);
  const parts = number.split('.');
  let integerPart = parts[0].toString();
  let fractionPart = parts[1] ? decimalSeparator + parts[1].toString() : '';
  integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, thousandSeparator);
  return integerPart + fractionPart;
}

这个函数主要是将数字转换成指定的格式化字符串,接收四个参数:number 表示要格式化的数字,decimals 表示小数点保留位数,默认值为 2,thousandSeparator 表示千位分割符,默认值为 ',',decimalSeparator 表示小数点分割符,默认值为 '.'。具体使用可以这样:

const number = 1234567.891;
const formatted = formatNumber(number, 2, ',', '.');
console.log(formatted); // 输出:1,234,567.89

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript常用工具方法封装 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 深入CSS3 动画效果的总结详解

    既然你要了解“深入CSS3 动画效果的总结详解”的完整攻略,我会给你详细的讲解。 深入CSS3 动画效果的总结详解 CSS3 是 CSS 技术的一个重要版本,它引入了很多新的功能和特性,其中包括强大的动画效果功能。CSS3 动画效果可以不需要 JavaScript 就能够实现各种各样的动画效果,并且使用非常灵活和方便。 下面给出一些深入 CSS3 动画效果的…

    JavaScript 2023年6月11日
    00
  • js实时获取系统当前时间实例代码

    下面是详细的讲解“js实时获取系统当前时间实例代码”: 1. 获取系统当前时间 使用JavaScript获取系统当前时间可以使用Date对象及其方法来实现。我们可以使用new关键字创建一个Date对象,然后调用它的相关方法来获取当前时间。以下是获取当前时间的代码示例: var now = new Date(); var hours = now.getHour…

    JavaScript 2023年5月27日
    00
  • js实现自动播放匀速轮播图

    JS实现自动播放匀速轮播图攻略 需求分析 我们需要实现一个图片自动播放的功能,并且播放速度匀速,不会因为帧率的问题出现卡顿等问题。我们需要完成以下需求: 图片从左往右轮播; 图片循环播放; 图片播放的速度需要匀速; 用户可以手动控制图片的播放。 实现过程 1. HTML结构 我们需要先确定HTML结构,以下是一个基本的HTML结构: <div clas…

    JavaScript 2023年6月10日
    00
  • 基于javascript编写简单日历

    下面是详细的“基于JavaScript编写简单日历”的完整攻略。 Step 1:需求分析 在开始编写日历之前,我们需要对需求进行分析,以便能够更好地为用户提供服务。根据需求分析,我们需要实现以下功能: 显示当前的年份和月份; 显示当前月份的所有日期; 提供切换月份的功能。 Step 2:HTML布局 为了实现上述功能,我们需要先在HTML文件中编写一些基本的…

    JavaScript 2023年5月27日
    00
  • vue父子组件进行通信方式原来是这样的

    我会详细讲解Vue父子组件进行通信的方式,包括三种方式:props、事件、$refs。 Props props 是父组件向子组件传递数据的一种方式。父组件可以通过定义子组件的 props,来向子组件传递数据。子组件可以通过 this.$props 来访问 props 中的值。下面是一个示例: 父组件: <template> <div>…

    JavaScript 2023年6月11日
    00
  • 如何让你的JavaScript函数更加优雅详解

    如何让你的JavaScript函数更加优雅详解 在编写JavaScript代码时,如何编写更加优雅的函数是一个值得探究的话题。下面,我们来一步步探讨如何让你的JavaScript函数更加优雅。 1.减少函数参数的数量 函数的参数数量应该尽可能的少,通常在3个以内是比较合适的。这样做的好处是可以避免函数的复杂性并提高代码的可读性,同时也可以提高代码的重用性和可…

    JavaScript 2023年5月27日
    00
  • nodejs中使用worker_threads来创建新的线程的方法

    下面详细讲解如何在Node.js中使用worker_threads模块来创建新线程。 简介 在Node.js中,JavaScript语言具有单线程执行的特性,这意味着如果主线程执行某些任务时,会阻塞其他任务的执行进度,导致性能瓶颈。因此,可以使用worker_threads模块创建新线程,实现多线程执行任务的目的。Worker对象执行的代码并不在主线程中运行…

    JavaScript 2023年5月28日
    00
  • javascript中使用正则表达式进行字符串验证示例

    首先,让我们来介绍JavaScript正则表达式。正则表达式是一种用于匹配文本模式的工具,JavaScript中的正则表达式使用RegExp对象来创建,并可以通过正则表达式字面量或RegExp构造函数来定义。 在JavaScript中使用正则表达式进行字符串验证有很多应用,例如对输入的内容进行格式检查、密码校验、邮箱格式验证等。 接下来我们将介绍如何通过正则…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部