当前位置: 首页 > news >正文

做质粒图谱的网站市场营销公司排名

做质粒图谱的网站,市场营销公司排名,刚做淘客没有网站,泉州做网站工资某些封装的函数,其参数具有多样性,会导致函数中会增加非常多的分支,比如下面这个 format 函数有如下几种参数方式,其中 formatter 会有很多种情况 date:日期对象formatter: ‘date’:格式化日期…

某些封装的函数,其参数具有多样性,会导致函数中会增加非常多的分支,比如下面这个 format 函数有如下几种参数方式,其中 formatter 会有很多种情况

  • date:日期对象
  • formatter:
    • ‘date’:格式化日期
    • ‘datetime’:带有时间
    • 可自定义返回格式
    • 自行处理的函数
  • isPad:是否补零
function format(date, formatter, isPad = false) {...
}
// 2024-9-29
format(new Date(), 'date')// 2024-9-29 7:3:10
format(new Date(), 'datetime')// 2024-09-29
format(new Date(), 'date', true)// 2024-09-29 07:03:10
format(new Date(), 'datetime', true)// 2024年09月29日 07:03:10
format(new Date(), 'yyyy年MM月dd日 HH:mm:ss.ms ', true)// 2024年9月29日 7:3:10
format(new Date('2012-12-31'), (dateInfo => {const { year } = dateInfoconst thisYear = new Date().getFullYear()if (year < thisYear) {return `${thisYear - year}年前`} else if (year > thisYear) {return `${year - thisYear}年后`} else {return '今年'}
}))

可以通过 参数归一化,选择一种能涵盖其他情况的参数,在本例中选择功能最灵活且强大的函数类型参数

封装辅助函数,返回归一化的结果(函数)

function _formatNormalize(formatter){if(typeof formatter === 'function'){return formatter}if(typeof formatter !== 'string'){throw new TypeError('参数类型必须为字符串或函数')}return ()=>{...}
}function format(date, formatter, isPad = false) {formatter = _formatNormalize(formatter)formatter()
}

处理完 函数非字符串 类型,继续分析 字符串类型 参数,它可能为 date、datetime以及模版字符串三种形式,挑选出其中功能最强大的方式:模版字符串,然后使用模版字符串替代date、和datetime的情况。

function _formatNormalize(formatter) {if (typeof formatter === 'function') {return formatter}if (typeof formatter !== 'string') {throw new TypeError('参数类型必须为字符串或函数')}if (formatter === 'date') {formatter = 'yyyy-MM-dd'}else if (formatter === 'datetime') {formatter = 'yyyy-MM-dd HH:mm:ss'}return (dateInfo) => {const { year, month, day, hour, minute, second, millisecond } = dateInforeturn formatter.replace('yyyy', year).replace('MM', month).replace('dd', day).replace('HH', hour).replace('mm', minute).replace('ss', second).replace('ms', millisecond)}
}

将参数的多样性选择抽离到辅助函数中,实现对 formatter参数 归一化

function formate(date, formatter, isPad = false) {formatter = _formatNormalize(formatter)const dateInfo = {year: date.getFullYear(),month: date.getMonth() + 1,day: date.getDate(),hour: date.getHours(),minute: date.getMinutes(),second: date.getSeconds(),millisecond: date.getMilliseconds(),}if (isPad) {dateInfo.year = dateInfo.year.toString().padStart(4, '0')dateInfo.month = dateInfo.month.toString().padStart(2, '0')dateInfo.day = dateInfo.day.toString().padStart(2, '0')dateInfo.hour = dateInfo.hour.toString().padStart(2, '0')dateInfo.minute = dateInfo.minute.toString().padStart(2, '0')dateInfo.second = dateInfo.second.toString().padStart(2, '0')dateInfo.millisecond = dateInfo.millisecond.toString().padStart(3, '0')}return formatter(dateInfo)
}
http://www.ds6.com.cn/news/78982.html

相关文章:

  • 制作网站的公司电话号码运营推广是做什么的
  • 做机械配件的网站营销背景包括哪些内容
  • 小程序定制公司百度seo推广软件
  • 阜阳网站建设费用网络营销的现状及问题
  • 网站建设教的误区东莞百度seo推广公司
  • 做文献综述的文章用什么网站zac seo博客
  • 怀化主要网站广州网站优化推广方案
  • 把网站生成app的免费平台网络策划是做什么的
  • 深圳市seo推广联系方式seo黑帽技术
  • 网站建设可用性企业网络营销策略
  • 做水果代理去哪个网站网站seo服务
  • 建筑设计一般用什么软件seo竞价
  • 推广手段有哪些方式seo的主要工作是什么
  • 网站建设在哪个软件下做佛山优化推广
  • 惠州免费建站模板营销策划公司简介
  • 网站建设微信营销seo页面如何优化
  • 学做陶艺作品的网站推广接单平台
  • 做自己的免费网站长沙线上引流公司
  • 一元云够网站建设友情链接工具
  • 您提供的产品已经提交过网站备案1688如何搜索关键词排名
  • 沂水做网站网络推广员的前景
  • 松江做移动网站设计湖南企业网站建设
  • 高端做网站多少钱网站关键字优化
  • wordpress 含演示数据网络搜索优化
  • 深圳市网站建设公司网站权重怎么看
  • 网站开发准备工作谷歌paypal下载
  • 怎么做网站音乐精准网络营销推广
  • 个人网站免费制作ip域名查询网
  • 合肥建设网站大数据培训班需要多少钱
  • 适合机械网站的wordpress主题模板排名前十的大学