git不常用命令

读《git权威指南》,记录一些git的命令。

git rev-parse

  • git rev-parse --git-dir 显示版本库.git目录所在位置
  • git rev-parse --show-toplevel 显示工作区根目录
  • git rev-parse --show-prefix 所在目录相对于工作区根目录的相对目录
  • git rev-parse --show-cdup 显示从当前目录后退到工作区的根的身度

JavaScript练习网站收集

在学习的过程中会发现很多知识点如果不在工作中运用或者手写带验证的话,很容易忘记。任何技能的掌握都是需要不断练习的。在此收集一些自己遇到的JavaScript练习的网站。

codewars

国外的一个练习网站,有JavaScript,也有Python,每种语言都有自己的道场(kata),每个用户都有不同的等级,刷题提高等级,也可以插卡别人优秀的解决方案。你会发现牛人无处不在。

我理解的浏览器兼容性

浏览器兼容性是一个很长久的话题,之所以前端需要面对浏览器兼容性,是因为用户的环境有不同的平台,不同的浏览器。不同的厂商之间为了相互竞争,对标准的实现不一样。不同的浏览器有不同的内核。即使同一个浏览器也有不同的版本,不同的版本对同一特性的支持情况也不尽相同。也可能某个浏览器的某个版本针对某个特性存在bug,而我们的产品又暂时不能放弃这个版本的用户,所以必须兼容。
PC的情况是这样,移动端的情况更复杂,除了要适配不同的平台和浏览器,还需要适配不同的屏幕,不同的硬件。

而要写出兼容性良好的代码,一是要了解规范,了解每个特性的实现原理,二是要了解各个浏览器内核的差异,三是要多尝试多踩坑,多积累。
下面介绍一下浏览器兼容性问题的大致分类,更多的细节可以到w3help查询。

2016如何学习JavaScript

虽然2016快结束了,但是这篇文章还是很有意思,值得一读,原文在此。很长的一篇文章,反应了现在的前端发展变化很快,特别是现在的react还有各种预编译的出现,导致现在即使做一个很简单的功能,都需要掌握很多繁杂的事情。
做为一个前端,需要不停的了解很多新的名词,技术。而且这些名词层出不穷,也不知道什么时候会过时,疲于奔命。
回过头来想一想,每一种技术的出现都有其原因和背景,都是为了解决生产中的某些问题,或则是为了提高生产力,或者是为了提高用户体验等等。而每一种技术的实现都有其内在的原理,世界变化万千,里唯一贯。


这篇文章是是受Circle CI的一篇叫“这就是未来”的启发而写,就像所有的JavaScript框架一样,没必要太严肃对待。在写这篇文章的时候不会创建任何的JavaScript框架。

有人问我说:我现在有一个项目,但是说实话,我没有写过太多的web代码,我听说前端变化很快,你是这里最跟得上时代的web开发者。

我确实是前端工程师,我就是你要找的人。我在2016年做web开发。可视化,音乐播放器,无人机踢球,等等。我刚从jsconf和reactconf回来,所以我知道最新的开发web app的技术。

JavaScript MVC简单例子

原文
我很喜欢JavaScript(我也是),因为它是世界上最具有扩展性的语言之一。它支持很多编程方式是编码技术,但是这种灵活性是很危险的–如果实践或者设计模式错误的或者不一致的,那很容易就把JavaScript的项目搞的一团糟。
这篇文章的目的是向大家展示如何在一个简单的JavaScript开发组件过程中应用MVC模式。这个组件类似HTML里的listbox(“select”标签),有一些可编辑的列表:用户可以选中或者删除、新增一个列表项。该组件包含三个类,对于MVC设计模式的三个部分。

JavaScript设计模式与开发实战读书笔记

基础知识

面向对象的JavaScript

如果它走起 路来像鸭子,叫起来也是鸭子,那么它就是鸭子。

  • 多态背后的思想是将“做什么”和“谁去做以及怎样去做”分离开来,也就是将“不变的事 物”与 “可能改变的事物”分离开来。
  • 多态最根本的作用就是通过把过程化的条件分支语句转化为对象的多态性,从而 消除这些条件分支语句。
  • 在 JavaScript 语言中不存在类的概念,对象也并非从类中创建出来的,所有的 JavaScript 对象都是从某个对象上克隆而来的。
  • 所有的数据都是对象。
  • 要得到一个对象,不是通过实例化类,而是找到一个对象作为原型并克隆它。  对象会记住它的原型。
  • 如果对象无法响应某个请求,它会把这个请求委托给它自己的原型。
Fork me on GitHub