2018 总结

今年最开心的事情,大概就是3月份的时候找了一份理想的工作。我现在还记得那种感觉,走在路上都会开心的笑起来,那一个月都过得相当开心。

(编译)关于package-lock.json的一切

文章编译自: Everything You Wanted To Know About package-lock.json But Were Too Afraid To Ask

你把npm更新到v5.x.x以后,会出现一种新的自动生成文件 - Package-lock.json。你如果打开这个文件,会发现它看着像package.json里面的依赖,不过看着更啰嗦。如果你不去管他,迟早你都会出现依赖的问题,比如依赖的版本没有安装正确。大多数人是直接删除掉package-lock.json,然后重新运行npm install来解决问题,这样也行,但是我们还是要搞清楚看这个文件是看什么的。

反思一下最近的状况

发现一个规律,一到晚上大脑就会想很多东西。严重的时候还会睡不着,大家可以看看这篇哈哈哈人啊,怎么一到黑夜,就开始矫情?
今晚上又是一个不眠之夜,于是爬起来反思反思最近的事情。

关于这个博客

在用github page服务之前,我用过Wordpress、Ghost这两个博客系统。不过自己搭博客的坏处就是得自己来维护。所以一直都是断断续续的写博客,这次用了hexo这个博客生成器,感觉确实不错。不用再自己维护博客系统了,也不用一直去续费服务器。。。

Linux 服务与自启动

尝试厘清一下如何在 Linux 中配置一个自启动的服务以及相关概念

JavaScript异常处理最佳实践

自己在写JavaScript的时候经常会遇到如何处理错误的问题

  • 要不要检查一下参数是不是正确的?
  • 如果参数不正确是抛出异常,还是传给callback,还是静默让它执行?
  • 我该如何编写检查的代码技能保证代码的精练又能达到检查的目标?
JavaScript Date 对象以及标准时间格式

1 ISO 8601标准

很多语言都有实现ISO 8601标准。所以我们有必要了解一下ISO 8601标准。ISO 8601标准,全称是《数据存储和交换形式·信息交换·日期和时间的表示方法》。该标准已经到了第三版“ISO8601:2004”,用以替代第一版“ISO8601:1988”和第二版“ISO8601:2000”。

1.1 表示日期的方法

首先是只使用数字为基本格式,例如20161206。使用了短横线隔开的为扩展格式,例如2016-12-06

说一说CSS里面的数值单位

css单位分为绝对单位(absolute units)和相对单位(relative units)。绝对单位就是不受其他数值的影响,在任何地方使用相同的值都会出现相同的效果。而相对单位就是会受其他元素影响,在不同的地方使用相同的值可能效果也会不同。看下下面这个表

理解line-height和vertical-align

我想吐嘈的是,W3C的标准不是一般的晦涩,特别是中文翻译,看了好几遍仍然搞不懂在说什么。只好硬着头皮去看英文。果然我还是太年轻了,看英文看得我递归懵逼。不过再看了几篇前辈的文章之后再回来看,感觉好像理解了一点了。我争取用比较易懂的语言描述一下line-heightvertical-align属性。

视觉格式化模型

我们可以把网页中的每个元素看作一个盒,所谓的页面的布局就是把每个盒按照一定规则排列起来最终形成页面。

CSS 视觉格式化模型的一部分工作是从文档元素生成盒。生成盒拥有不同类型,并对视觉格式化模型的处理产生影响。生成盒的类型取决于 CSS 属性。

z-index层叠顺序小小的分析

下文如果没有特别说明,static元素指的就是设置postion:static的元素或者没有设置position的元素。设置了position的元素指的是设置了除static以外值的元素。

什么是编码与字符集

我们都知道,计算机只能识别0和1。对于数值类型的数据,他们之间不过是进制转换。比如十进制的100,只需要通过进制转换,转换成二进制1100100就能够在计算机中精确的表示。但是字符就不同了,相比较于数值,它没法和二进制相互转换。所以要如何表示字符便成了一个问题。既然计算机只认识0和1,并且不同进制的数值能够互相转换,那我们给每个字符都给他对应的且独一无二的数值来标识不就行了?从这里我们引出下面这些概念。