0%

核心概念

  • Action 是一个用来描述应用的 state 的普通 JavaScript 对象。(可以理解为处理前的状态)
  • Reducer 是为了把 actionstate串起来(即通过处理 action 返回一个 state),而开发的一些函数。它只是一个接收 state 和 一个action,并返回新的 state 的函数
阅读全文 »

简介

Module模式是JavaScript编程中一个非常通用的模式,一般情况下,大家都知道基本用法,本文尝试着给大家更多该模式的高级使用方式。

首先我们来看看Module模式的基本特征:

  1. 模块化,可重用
  2. 封装了变量和function,和全局的namaspace不接触,解耦合
  3. 只暴露可用public的方法,其它私有方法全部隐藏

关于Module模式,最早是由YUI的成员Eric Miraglia在4年前提出了这个概念,我们将从一个简单的例子来解释一下基本的用法(如果你已经非常熟悉了,请忽略这一节)。

阅读全文 »

展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。

一位不知姓名的前辈

自己的户口档案、养老保险、医疗保险、住房公积金一定要保管好。

由于程序员行业每年跳槽一次,我不隐瞒大家,我至少换过5个以上的单位,这期间跳来跳去,甚至是城市都换过3个。还好户口没丢掉,其他都已经是乱了,好几个城市里,都有交过三金,甚至是一个程序的2个区里交的都有,那些东西,10年后,会变得很重要。你买房子若有公积金,可以取出来,贷款利率也会比较低一些,有孩子了,还需要上学,生病了还需要医疗保险。

阅读全文 »

几种常见的开源协议

简介

开源软件(Open source software)对我们来说越来越不陌生,开源软件一方面让我们享用到了“免费的午餐”,另一方面有效的利用和学习开源软件,也能促进我们开发软件时的效率、提升软件质量。但是在使用和借鉴开源软件的时候,我们不得不关心一下它对使用者的诸多限制,比较常见的方式即协议授权(licence),这些协议中明确说明了使用者应该遵循的原则。

现在开源协议众多,通过Open Source Initiative组织批准的开源协议有50多种,本文介绍其中一些常见的协议。

阅读全文 »

众所周知,当声明一个变量,并且没有给赋值的情况下,它的初始值是 undefined
但是在javascript中,怎么检查一个值是否为 undefined 呢?

简单的回答

在现代浏览器中,你可以安全的直接比较将变量是与 undefined 进行比较

1
2
3
if (name === undefined) {
//...
}

一些人反对直接使用 undefined 变量进行比较,因为在旧的浏览器中它允许被重新赋值,像下面这样:
1
undefined = "test"

在被重新赋值后,直接使用 undefined 将不能正确的检测一个变量是否被赋值。
然而,这一行为在2009年的ECMAScript 5被修复了。

阅读全文 »