Chaoming's Blog

Talk is cheap. Show me the code.

Mid-year Summary

👨‍💻‍Feeling2018年上半年一下子就结束了,总体感受就是太快乐,好像做了很多东西,也好像没做多少东西。有句话说得很对,时间是有加速度的,加速度会随着年龄增大二增大。步入中年(滑稽脸😶),越来越体会到时间的加速度。 由于年龄的增大,人需要处理事情会越来越多。加上信息爆炸时代,时间的碎片化,一整段的可利用时间会减少。上半年,需求不断,代码也写了不少,事情是做了不少,但是总有一种......

2017overWatch

2017年度总结这一年做了些什么? 技术流上,从node(主要还是express)转移到react,慢慢热爱上react 曾经有一段能自己自由把控的上班时间,于是玩了一把全栈.自己开发一个留言板,后台方面用上熟悉express.数据控库上了MongoDB,前端用React-redux全家桶,master-UI 实现了一个自己的留言板,自己的小便签,还蛮有意思的. 换了一个新的环境,技术氛......

图片预览组件的一些事一些情

React组件设计demo: http://gmfe.github.io/react-gm/#/doc/ImagePreviewgithub源码: https://github.com/gmfe/react-gm/tree/master/src/component/image_preview react组件设计按照组件的使用方式来划分,有两种方式: 静态方法 把组件的一系列逻辑封装......

缓存机制

缓存的分类缓存分为服务端侧(比如:Nginx、Apache)和客户端侧(比如:web brower)。 服务端缓存又分为代理服务器缓存和反向代理服务端缓存(也叫网关缓存,比如Nginx反向代理、Squid等),其实广泛使用的CDN也是一种服务端缓存,目的都是让用户的请求走捷径,并且都是缓存图片、文件等静态资源。 客户端缓存一般指的是浏览器缓存,目的就是加速各种静态资源的访问,想想现在的大型......

时间格式化工具函数

时间格式化函数时间格式化工具,一般比较常用. moment.js库基本上能满足,日常开发大部分需求.心血来来潮,想造一把轮子. 下面我简单实现一个时间格式化函数. 1234567891011121314151617181920212223// 简单粗暴,直接在Date的原型上实现一个format函数Date.prototype.Format = function (fmt) { ......

函数的节流和去抖

js性能优化

前言函数节流和去抖的出现场景,一般都伴随着客户端 DOM 的事件监听。例如:监听滚动事件判断是否到页面底部自动加载更多:给 scroll 加了 debounce 后,只有用户停止滚动后,才会判断是否到了页面底部;如果是 throttle 的话,只要页面滚动就会间隔一段时间判断一次 谈到函数节流,举个例子,实现一个原生的拖拽功能(不能用 H5 Drag&Drop API),需要一路......

JS深复制与浅复制

深复制函数实现

前言前段时间学习函数式编程,里面有一个重要的概念就是,函数永远不要对数据作修改。 不修改数据,意味着输入一个变量,经过计算后返回的永远都是一个新的变量。 这么做的好处是让数据可以进行所谓的时间旅行,在任何的时间可以回溯到系统的之前的任意状态,而不引起副作用。 well! 复制JS的基本数据类型,再简单不过了,直接创建一个新变量然后进行赋值,这么做就完成简单赋值. 如下:1234var foo......

徒手解析URL参数

题目不借助第三方库的条件下,用 JS 编写函数从下面的 URL 串中解析出所有的参数: 1http://www.domain.com/?user=anonymous&id=123&id=456&city=%E5%8C%97%E4%BA%AC&d&enabled 期望的返回结果格式如下:123456{ user: 'anonymous', ......

JS排序算法

数组 排序

前言这篇博文将会写一些自己日常用到的js排序算法. 排序算法一次性写完,个人感觉不太实际,所以会陆续更新比较好. 代码实现快速排序123456789101112131415161718192021222324252627282930/* 输入数组快速排序* @params arr {Array}* @return {Array}*/fun......

实现链式调用LazyMan

原型链 链式调用实现

前言昨天面试碰到一条非常有意思的面试题,关于链式调用和流程控制的写法,下面把我自己的实现分享一下。 题目实现下面的函数: 12345678910111213141516171819LazyMan(“Hank”)//Hi! This is Hank!LazyMan(“Hank”).sleep(10).eat(“dinner”)// Hi! This is Hank!// 等待10秒..// ......