《JavaScript面向对象精要》笔记

一切皆对象

其他编程语言用栈储存原始类型,用堆储存引用类型,JavaScript 则完全不同:它是以一个变量对象追踪变量的生存期。原始值被直接保存在变量对象内,而引用值则作为一个指针保存在变量对象内,该指针指向实际对象在内存中的存储位置。
page 2

例如,所有的 JavaScript 对象都有一个方法 Object.prototype.valueOf(),该方法返回指定对象的原始值。如果我们一个简单的赋值语句:

1
var a = 1;

那么我们会发现变量 a 上面其实有很多方法(当然,大部分都是来自于其原型)。这就是因为该变量是通过变量对象进行追踪的,并不仅仅只有一个值(这也涉及一个概念,“原始封装类型”)。这也是 JavaScript “一切皆为对象”的理念。

Read More

Share

Linux常用命令笔记(二:变量)

变量

基本使用

Bash 里,每个变量的值都是字符串。变量名是区分大小写的。要输出变量值,可以用下面方法中的任意一个:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var="some test string."

# 方法①
# 美元符号 $ 用于提取变量值
echo $var

# 方法②
echo ${var}

# 方法③
echo "$var"

# 方法④
# 这种语法,非常像 ES6 里面的模板字符串
echo "${var}"

上面说到变量值都是字符串,那么如果想知道字符串的长度,可以通过 # 符号来获取:

1
2
var="some test string."
echo $#var # 输出 17

Read More

Share

PNG 图片压缩及若干工具对比

原始图片的体积是433KB,格式为 PNG,尺寸为 2560×920。【待补充图片测试用例】

这里共使用了5种工具:

  • 有损压缩工具 ImageOptim
  • GUI 工具 ImageOptim
  • Zopfli
  • OptiPNG
  • pngcrush

Read More

Share

用rescuetime来记录你在Macbook上的工作时间

在公司配的 MacBook 上装了 rescuetime 这个软件,记录自己的使用时间分配。到现在已经快两个月了,给出的数据感觉很有意思。

总结我个人工作的几个特点:

  • 平均每天用电脑的时间为8小时。平均来说,每天:10点30开始工作,中午吃饭、休息1.5小时,晚上吃饭0.5小时,厕所、接水等0.5小时,21点下班。
  • 每天的编码时间平均在5个小时左右。少于5小时,的确会感觉工作不饱和;而如果经常多于6小时,则会容易觉得累、无法持续太多天
  • 一天的工作时间不太可能全部用来进行编码,还有不少是花在了沟通(约1小时,公司的内部即时通信软件,QQ等)、读写文档(约1小时)上面

Read More

Share

2016 年度小结

2016年用一个字形容,是累。用一句话来形容的话,就是很累,同时学到了很多东西。当然,又老了一岁。

中国的城镇化进程势不可挡。当年逃离北上广的年轻人们,也许都已经在各自的二三线城市舒舒服服地过日子了。但是仍有另一批人,怀揣着自己或清晰或朦胧的梦想,来到一线奋斗。知乎上总是会有两群人为各自选择城市的哲学而争辩,看上去是一个非常因人而异的话题。

有一次,曾经的系队好友从家飞来北京度周末,闲聊时问我,“你在北京感到生活的乐趣了吗”。我只好告诉他,Negative,在这里更多的是工作、挣钱,哪有功夫生活啊。

女友常说以后要找个机会,最好是大段时间,好比几年,去家寺庙静静心。其实在这里,很多时候是孤独的。“小隐隐于野,中隐隐于市,大隐隐于朝”,屁民大隐无望,那么在大城市里忍受甚至享受孤独的我,也许已经到“中隐”的境界了呢。

下面就总结一下这一年,记下自己都完成了哪些“KPI”。

PS:上一年的总结在这里,记 2015

Read More

Share

HTTP 头的中文字符处理案例

简单记录一下工作中遇到的两个与HTTP&中文字符相关的问题及解决方案。

参考资料[1]总结得非常细致。本文再把相关的 RFC 协议原文贴过来,做笔记用。

Read More

Share

vim 简单操作笔记

vim 是***

Read More

Share

JavaScript Ninja

《JavaScript忍者秘籍》封面

书名《JavaScript忍者秘籍》,作者呢是大名鼎鼎的 jQuery 的创作者。这本书里介绍了各种“忍者级”JS用法,收益颇丰。书中的许多示例代码体现了作者在设计 jQuery 时的编程思想,非常有价值。

Read More

Share

《代码大全(第2版)》笔记

从今年4月初,到9月的最后一天,用了半年,终于断断续续地把这个大部头著作读完了。

按照阅读顺序来记录吧。虽然最开始并没有按照书页顺序来读,而是听从了译序里的“这本书适合谁看,该怎么看”的建议。先看了18章(初级程序员)、11章(低年级学生)、第8章(防御式编程)、第7章(自学
编程的人)、第13章(喜欢参与网上争论的人)。不过看完这几章之后,就开始顺序看了。

总体感觉,这本书是属于“软件工程”范畴的。译序里提到:“这本书讲的正是为了到达‘编码完成’这一重要里程碑所必需的软件构件技术,确切地说,就是如何编写高质量的代码。作者认为,应该首先为人编写代码,其次才是为机器”。这差不多就总结了这本书的主旨。

这个笔记最初是在豆瓣上面一点点记录的,顺便还发现豆瓣上面这本书的一个特点:目前其书评大概是隔2个月会有人写一篇;本书出版10年,共计90篇书评,平均每年9篇。相对于那些畅销书,这样的评论增幅的确较慢,估计也是因为本书非常厚重、比较偏技术类的缘故了。

即使那么多年过去了,程序员在工作时的常见心理表现似乎没什么大变化。程序员普遍自负,例如23.4节说的,“就算是已经看到了一个缺陷,你的自负还是会让你觉得自己的代码完美无缺”。~~

Read More

Share

关于 DOM Element style 属性的一件小事

这几日写了个小插件,因为对 DOM element 的 style 属性的使用不当,导致这个插件有点问题。具体来说,就是无法通过 element.style = 'display: none' 这种写法来隐藏元素。

因为DOM 标准规定 HTMLElement 的 style 属性是只读的。

附:插件地址

Read More

Share