Henry前端笔记 (三)函数封装

  • 基本函数
    • 1 在Javascript中什么是伪(类)数组?如何将伪数组转化为标准数组?
    • 时间戳转为日期格式

基本函数

1 在Javascript中什么是伪(类)数组?如何将伪数组转化为标准数组?

伪数组具有以下特点的对象:

  • 按索引方式存储数据;
  • 具有length属性;
  • 没有数组的push、shift、pop等方法;
    如function的arguments对象,还有getElementsByTagName、ele.childNodes等返回的NodeList对象,或者自定义的某些对象,这些都可以是伪数组。如:
var guiseArr={'0':"AAA",'1':"BBB",'2':"CCC",length:3
}

我们可以通过以下几种方式将伪数组转换为标准数组:

//第一种方法,使用slice
Array.prototype.slice.call(arr,0);
//第二种方法,直接使用for循环
var newArr=[];
for(var i=0;i<arr.length;i++){newArr=arr[i];
}
//第三种方法,使用ES6的Array.from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。
var newArr=Array.from(arr);
//f附加:Array.from(object, mapFunction, thisValue)
var arr = Array.from([1, 2, 3], x => x * 10);
// arr[0] == 10;
// arr[1] == 20;
// arr[2] == 30;

时间戳转为日期格式

//时间戳转换为自定义年月日时分秒时间格式:
//number :传入时间戳  时间戳为10位需*1000,时间戳为13位的话不需乘1000
//format :返回格式,支持自定义 但参数必须与formatArr里保持一致
function formatTime(number, format) {//格式化日期函数,如月、日、时、分、秒保证为2位数function formatNumber(n) {n = n.toString()return n[1] ? n : '0' + n}let date = new Date(number) //转为时间对象let newArr = []let formatArr = ['Y', 'M', 'D', 'h', 'm', 's']newArr.push(formatNumber(date.getFullYear()))newArr.push(formatNumber(date.getMonth() + 1))newArr.push(formatNumber(date.getDate()))newArr.push(formatNumber(date.getHours()))newArr.push(formatNumber(date.getMinutes()))newArr.push(formatNumber(date.getSeconds()))for (let i = 0; i < newArr.length; i++) {format = format.replace(formatArr[i], newArr[i])  //字符串一一对应替换}return format
}
var timestamp = 1488481383;//时间戳
console.log(formatTime(timestamp, 'Y/M/D h:m:s'));//转换为日期:2017/03/03 03:03:03
console.log(formatTime(timestamp * 1000, 'h:m'));//转换为日期:03:03

Henry前端笔记之 函数封装相关推荐

  1. Henry前端笔记之 Date对象详解

    Henry前端笔记之 Date对象详解 Date 对象 1 时间格式简介 2 Date.now 与 new Date().getTime() 的区别 3 Date对象详解 普通函数的用法 构造函数的用 ...

  2. Henry前端笔记之 Node及npm相关

    Henry前端笔记之 npm入门相关 NodeJs 简介: 1.Nod简介与概述: 2.交互式运行环境:PEPL 3.Node.js模块和包 3.npm包管理工具 npm简介详见:https://dk ...

  3. Henry前端笔记之 git实际操作问题记录

    Henry前端笔记之 git实际操作问题记录 在拉取后发现之前有未推送的更改 早上有一次提交没有推送成功 后来强制拉取覆盖了 因为冲突太多~~ 现在决定找回之前的提交 错误分析: 解决方案: 参考文献 ...

  4. Henry前端笔记之 HTML相关

    Henry前端笔记之 HTML相关 一些标签的使用,切记所有标签都需要闭合,不管是单体标签还是成对标签.(尽管目前浏览器是识别有些标签不闭合的情况,但是取的最好的保证兼容性,使用闭合) 标签写法要用小 ...

  5. Henry前端笔记之 宏观世界

    Henry前端笔记之 前端资源整理 移动web资源整理 前端性能优化 web前端兼容性问题总结 大公司项目开发部署流程 css前端布局基础概述: 浏览器兼容 CSS编码规范 jss概念合集与好文收集 ...

  6. Henry前端笔记之 something about devtool

    Henry前端笔记之 something about devtool 一篇就够之 Chrome DevTools(v57) 使用详解 精华之network详解 Vue :衡量 Vue 应用的运行时性能 ...

  7. Henry前端笔记之响应式布局与弹性布局

    Henry前端笔记之响应式布局与弹性布局 弹性布局 Rem布局的原理解析(em 与 rem区别 ): rem如何实现自适应布局 使用CSS3 REM 和 VW 打造等比例响应式页面的便捷工作流 从网易 ...

  8. Henry前端笔记之 UI组件库中table与slot相关理解

    Henry前端笔记之 UI组件库中table与slot相关理解 作用域插槽: 解构赋值基础:https://developer.mozilla.org/zh-CN/docs/Web/JavaScrip ...

  9. Henry前端笔记之 CSS相关

    Henry前端笔记之 CSS相关 深入理解vertical-align和line-height的基友关系 深入理解vertical-align和line-height的基友关系 详见:基友理解 px. ...

最新文章

  1. 微信真要做操作系统了?
  2. ireport怎么套打_阴阳师:当前版本道馆突破怎么打?九套阵容让你成为道馆小能手...
  3. 【声源定位】 球面散乱数据插值方法/似然估计hybrid spherical interpolation/maximum likelihood (SI/ML) 麦克风阵列声源定位
  4. 2017 全球超大规模数据中心已超过 390 个,中国仅占 8%
  5. php页面代码简化,php代码如何简化
  6. js:点击button后返回值
  7. org.eclipse.jdt.internal.compiler包下的类找不到
  8. matlab如何求矩阵的转置矩阵,怎么用MATLAB程序求转置矩阵?急需,高手帮忙………………...
  9. 前端扁平化数据转树形数据_把平级数据变成树形数据
  10. 【电路】LM293D电机驱动芯片
  11. vb6启动时提示安装VS2008 SP1
  12. 我看Asp.Net控件(三)
  13. ksu7对讲机调频软件_万能对讲机写频软件
  14. vue脚手架安装时出现Error EPERM operation not permitted这个错误
  15. 1024是什么节日 (中国程序员节)
  16. [软件更新]SRS Audio Sandbox v1.9.0.4 汉化版
  17. php能做彩票走势图么,如何用EXCEL制作彩票走势图?
  18. AJax 中的 xhr.states 和 xhr.status
  19. FusionCharts简介
  20. 如何解决Labview卸载不干净,error1721的问题

热门文章

  1. 百度上传网站服务器地址,用浏览器访问 一个网站(www.baidu.com) 的过程
  2. 总结易错点:java格式,标识符与关键字(小白也想学好java)
  3. python 远程控制实例
  4. 总结ctf中 MD5 绕过的一些思路
  5. codeforces 766E 二进制思想dp
  6. 【读书笔记】万物原理——打开客观世界与主观情感的大门
  7. tensorflow 1.13.1 requires wheel>=0.26, which is not installed. After October 2020 you may exper
  8. 悟空:用Go语言编写的全文搜索引擎
  9. 基于3D边界特征的视觉定位技术
  10. iOS APP图标一键生成