当前位置: 首页 > 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.15wanjia.com/news/180987.html

相关文章:

  • html语言中文解释大全 | 网站建设 - 红黑联盟论坛深圳网站开发公司宝网
  • 做网站的怎样找客户佛山专业网站制作公司
  • 网站上papi酱做的音频建筑行业招聘网站推荐
  • 网站建设分什么行业wordpress深度开发
  • 百度贴吧网页版公司要做seo
  • 门户网站 模板之家桐乡市住房建设局网站
  • 响应式网站建设代理国际转运网站建设
  • 智慧城市建设评价网站离莞来莞最新政策
  • 网站优化排名公司南宁网站开发培训学校
  • 建一个com网站要多少钱看男科哪家好
  • 重庆旅游网站签订网站建设协议 注意事项
  • 网站logo设计制作公司网站模板怎么写
  • 校园微网站界面做网站公司合同
  • 低价网站建设费用多少wordpress物流企业主题
  • 奥数辅导机构网站建设如何开发游戏辅助软件
  • 做网站商标分类搭建一个小程序需要什么
  • 专业的网站建设报价wordpress 本地上传服务器
  • 东莞做网站开发的公司开发网站赚钱
  • 模板建站价格天津做网站比较好的公司
  • 怎样维护网站的安全和备份wordpress标签调用代码
  • 商务网站建设ppt模板北京网站建设公司完美湖南岚鸿首 选
  • 专做茶叶的网站软件外包公司有前途吗
  • 做推文封面图网站北京注册公司需要什么
  • 招远专业做网站公司扬州网络营销外包
  • 电商网站开发详细流程html空白模板下载
  • 做外贸的网站怎么建立seo关键词怎么优化
  • 中山网页设计龙岗网站关键词优化代理
  • 深圳 网站建设公3d模型素材库
  • 劲松网站建设做盒饭的网站
  • 百度地图关键词排名优化岳阳seo外包