william.chan's blog

done is better than perfect

JavaScript: javascript 中x++和++x的不同

++ 含有隐式的赋值

”++”含有隐式的赋值 “++”运算符在操作数之前,称为“前增量”(pre-increment)运算符,它对操作数进行增量计算,并返回计算后的值。 当“++”运算符在操作数之后,称为“后增量”(post-increment)运算符,它对操作数进行增量计算,但返回未做增量计算的(unincrement)值。 1 2 3 var i=1,j=++i;//i和j的值都是2。 va...

JavaScript: es5 中的模块介绍

为模块定义引入包装函数,并保证它的返回值和模块的API保持一致。

为模块定义引入包装函数,并保证它的返回值和模块的API保持一致。 js 模块介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function CoolModule() { var something = "cool"; var another = [1, 2, 3]; function doSomething() { cons...

JavaScript: 区分函数声明和表达式最简单的方法

function 关键字是否位于声明的开始

function 关键字是否位于声明的开始 区分函数声明和表达式最简单的方法 区分函数声明和表达式最简单的方法是看 function 关键字出现在声明中的位 (不仅仅是一行代码,而是整个声明中的位置)。 1 2 3 4 5 6 7 8 // 表达式 (function(){})() var foo = function () {} // 声明 function foo() {} ...

React: react UI组件的业务逻辑

import connect from 'react-redux';

当使用 React + Redux 时,组件如何使用 state 和修改 state UI组件 vs 容器组件 1 2 3 4 5 import connect from 'react-redux'; const List = connect( mapStateToProps, mapDispatchToProps )(Count); React UI组件的业务逻辑 ...

React: 在react中通过ref获取input值

this.refs.user.value, ref='user'

在react中通过ref获取input值 1 2 3 4 5 6 this.refs.user.value this.refs.pwd.value <input type="text" ref="user" /> <input type="password" ref="pwd" />

React: 生命周期流程图

挂载、更新和卸载

React 生命周期流程图

JavaScript: 事件传递的3个阶段

addEventListener、捕获、事件处理阶段和冒泡

事件传递的3个阶段 addEventListener 1 2 obj.addEventListener('click', func, true); // 捕获方式 obj.addEventListener('click', func, false); // 冒泡方式 示意图 捕获阶段、事件处理阶段和冒泡阶段 执行栈和异步队列 执行栈:先执行同步代码,再执行异步代...

Node.js: nvm 和 npm 使用淘宝镜像

设置环境变量 NVM_NODEJS_ORG_MIRROR

nodejs和npm的仓库托管在S3上,在国内访问十分困难,这里可以用淘宝的镜像站npm.taobao.org代替。 nvm使用淘宝镜像 很多人会使用nvm管理本地nodejs版本。而nvm支持通过环境变量指向nodejs和iojs的下载地址。 1 2 3 # vim ~/.zshrc export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.or...

Mac: mac2015菜单栏不显示隔空播放

2016年之前推出的 MacBook Pro不支持

mac2015菜单栏不显示隔空播放 https://discussionschinese.apple.com/thread/251237371

Redux: store.dispatch(getAllProducts());

问什么 getAllProducts() 返回一个函数而不是一个action?

问题 store.dispatch(getAllProducts()); 问什么 getAllProducts() 返回一个函数而不是一个action? 什么是 thunk?! thunk 是一个包含表达式的函数,用于延缓表达式的执行。 1 2 3 4 5 6 7 8 // calculation of 1 + 2 is immediate // x === 3 let x = 1...