零、块级作用域

在学习 letconst 之前,我们不得不谈一谈 ES5 的块级作用域,理解为什么要在 ES6 引入 letconst

我们都知道:通过 var 声明的变量存在变量提升的特性。 看看下面的示例代码:

if (condition) {
    var value = 1;
}
console.log(value);

我们可能会觉得只有 conditiontrue 的时候,才会创建 value,如果 conditionfalse,程序就不会走到 if 里面,结果是程序报错:ReferenceError: value is not defined

但是,因为变量提升的原因,实际代码相当于:

var value;
if (condition) {
    value = 1;
}
console.log(value);

如果 conditionfalse ,结果会是 undefined

除此之外,在 for 循环中:

function test() {
  for (var i = 0; i < 3; i++) {
    //...
  }
  console.log(i);
}
test();

即便循环已经结束了,我们依然可以访问 i 的值。

为了加强对变量生命周期的控制,ECMAScript 6 引入了块级作用域。

块级作用域存在于:

  • 函数内部
  • 块中(字符 { 和 } 之间的区域)
阅读更多

一、什么是面向对象编程?

维基百科上是这样说的

Object-oriented programming (OOP) is a programming paradigm based on the concept of “objects”, which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.

翻译一下:面向对象编程是一套基于“对象”这个概念的编程方法论。一个对象中会包含数据,通常叫“属性”,也会包含一些函数,通常叫方法。

1.class 和 object

object 就是对象的英文,class 中文翻译为”类”,这两个概念是面向对象编程的最重要的概念。对象是类的实例化,例如人是一个类,人有名字这个属性,但是没有具体值。 把人这个类实例化成一个具体的人,给这个人具体赋值,这个具体的人,就是一个对象,对象中就有了实际的数据值了。

阅读更多

github 有一个非常强大的功能 —— GitHub Page

GitHub Pages 有以下几个优点:

  • 轻量级的博客系统,没有麻烦的配置
  • 免费空间,享受 Git 版本管理功能
  • 使用标记语言,比如 Markdown
  • 无需自己搭建服务器
  • 可以绑定自己的域名

当然他也有缺点:

  • 搭配模板系统,相当于静态页发布,每运行生成一次都必须遍历全部的文本文件,网站越大,生成时间越长
  • 动态程序的部分相当局限,比如没有评论,不过有解决方案
  • 基于 Git,很多东西需要定制,不像 Wordpress 有强大的后台

要想搭建漂亮的 blog,还需要模板系统,官方推荐的是 jekyll,但是配置稍复杂,我们使用另一个选择 —— hexo,一个简单地、轻量地、基于 Node 的一个静态博客框架。

下面介绍下如何使用 hexo + github pages 搭建个人博客 。

阅读更多

使用Gulp优化Hexo

1.安装依赖

$ npm install gulp gulp-uglify gulp-clean-css gulp-htmlmin gulp-htmlclean gulp-imagemin gulp-concat --save-dev

如果安装的依赖和已经存在的依赖有冲突 , 可在 package.json 中添加以下开发依赖 :

"devDependencies": {
    "gulp": "^3.9.1",
    "gulp-concat": "^2.6.1",
    "gulp-htmlclean": "^2.7.15",
    "gulp-htmlmin": "^3.0.0",
    "gulp-imagemin": "^3.3.0",
    "gulp-clean-css": "^2.3.2",
    "gulp-uglify": "^3.0.0"
}
阅读更多

一.前言

电脑装了双系统,前些天重装了系统,没有备份 Hexo 博客源文件,只能重新去安装一堆依赖和修改配置了。。。搜了一下网络教程解决了备份的问题,所以此博客记录自动备份Hexo博客源文件到Github的过程。

原文出自:自动备份Hexo博客源文件

二.原理

通过通过监听Hexo 的其它事件来完成自动执行Git命令完成自动备份。查阅Hexo文档,找到了Hexo 的主要事件,见下表:

事件名事件发生时间
deployBefore在部署完成前发布
deployAfter在部署成功后发布
exit在 Hexo 结束前发布
generateBefore在静态文件生成前发布
generateAfter在静态文件生成后发布
new在文章文件建立后发布

于是我们就可以通过监听 HexodeployAfter 事件,待上传完成之后自动运行 Git 备份命令,从而达到自动备份的目的。

阅读更多
3 / 3