TAT.李强 JavaScript 数据结构和算法简述——数组
In 未分类 on 2015年09月15日 by view: 12,230
7

为什么先讲数组


数据结构可以简单的被分为线性结构和非线性结构。

线性结构大致包括:

  1. 数组(连续存储);
  2. 链表(离散存储);
  3. 栈(线性结构常见应用,由链表或数组增删和改进功能实现);
  4. 队列(线性结构常见应用,由链表或数组增删和改进功能实现);

非线性结构大致包括:

  1. 树;
  2. 图;

其中,数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。由于数组十分容易懂,所以它被用来作为介绍数据结构的起点非常合适。

TAT.felix 初探 performance – 监控网页与程序性能
In 未分类 on 2015年09月03日 by view: 43,012
13

使用 window.performance 提供了一组精确的数据,经过简单的计算就能得出一些网页性能数据。

配合上报一些客户端浏览器的设备类型等数据,就可以实现简单的统计啦!

额,先看下兼容性如何:http://caniuse.com/#feat=nav-timing

这篇文章中 Demo 的运行环境为最新的 Chrome 的控制台,如果你用的是其他浏览器,自查兼容性哈~

是时候使用 ES 2015 了
In 未分类 on 2015年08月31日 by view: 4,603
4

在 Web 中使用 ES 2015

想要在浏览器端使用 ES 2015 最新语法,其实很简单,只需要一个转换器即可,Babel 是 ES 2015 最流行的转换器之一,Babel 加上各种插件和 polyfill 能基本上支持绝大部分新语法。

在你的构建中,插入一步使用 Babel 将 ES 2015 的代码转换成完全兼容 ES5 的代码的任务,你甚至都不必了解 Babel 的具体用法,就可以爽爽的开始写 ES 2015 代码了。

使用 gulp-babel 在需要的地方转换一下即可。

 

TAT.rocket 使用 js 实现思维导图
In 未分类 on 2015年08月28日 by view: 25,016
2

本文主要阐述使用 js 实现思维导图的关键技术点,如果还不知道什么是思维导图的同学,请自行度娘。以下是 demo 和源码的传送门:
demo:http://rockyren.github.io/mindmaptree/
源码:http://github.com/RockyRen/mindmaptree/tree/master

在源码中我使用了 svg 绘制思维导图。与 canvas 相比,svg 将图像当成对象,我们可将思维导图中节点和线等图形表现为对象,而且 svg 更适合用于动态交互的应用

flow–facebook 出品的 javascript 静态类型检查器
In 未分类 on 2015年07月31日 by view: 7,418
5

起源

众所周知,js 是一门弱类型的语言,类型转换往往隐含在各种业务代码中,同时也埋下了不少的坑。比如以下代码


是时候升级你的 gulp 到 4.0 了
In 未分类 on 2015年07月29日 by view: 13,591
3



不得不说的废话

随着前端工程化的推进,相信越来越多的项目都用上了自动化构建。
对前端构建来说,使用最多的莫过于 gruntgulp

本文的主角是 gulp,所以花一两句话来介绍 gulp 还是有必要的。

gulp 是一款基于 stream 的前端构建工具,由于底层使用 stream,可以将多个任务无缝串连在一起,相比使用临时文件的 grunt 要快不少;同时也不用像 grunt 一样写一大堆配置文件,每一个任务都可以可编程的来完全控制逻辑。

gulp 比 grunt“快” 这是公认的事实,这里不再过多比较两者之间的差异,还是那句话,各有千秋吧。

TAT.finlay 编程小技巧分享 (队列回调)
In 未分类 on 2015年07月25日 by view: 4,117
7

 

场景描述

有时候我们会碰到这样的任务场景,需要在一个界面上展示,许多图表内容,而获取图表数据的 CGI 做得非常原子化,也不方便更改,那么只能发很多个请求来拉取数据,展示图表,大致像下面的界面。
liushui
或者有时候,希望一系列函数按照一定顺序自动执行,但里面内嵌各种回调,完全不知道函数何时执行。可能不得不使用标志位来记录执行阶段。(当然可以使用 promise, 这里是尝试给出另外一种解决方案和思路), 这样代码看来一团糟,作为有处女座潜质的程序员多少有些纠结。

背景交代完毕,现在是正题,小技巧分享。
其实呢,我们需要的只是一个有加载顺序的队列来完成任务。
但是这里有个思维难点是程序执行流程并非线性推进,而是通过事件推进,不符合常规的线性思维方式。

我就想了一种可以让代码看起来更线性的一种方案.

代码如下:

这里我做的事情就是将队列函数,交给调用方自己来决定,何时执行。
同时 run 是个幂等函数,方便随时调用,还可以保证只有一个队列在执行,且不被多次调用。
这样就满足了开场需求,在 ajax 中顺序回调:)

 

TAT.simplehuang Mongoose&KOA 使用入门
In 未分类 on 2015年06月30日 by view: 5,373
1

一、概念解析:

Mongoose:

Let's face it, writing MongoDB validation, casting and business logic boilerplate is a drag. That's why we wrote Mongoose.

Mongoose 简单来说就是数据库操作 ORM

createConnection 与 connect:

许多入门学徒在看到这两个函数的时候都会有一定疑惑,但是这两个函数其实并不是一个东西,

createConnection 创建的并非一个默认的数据库连接,它返回的是一个 Connection。我们需要通过这个 Connection 来创建 Model、Instance,然后进行数据表操作,这通常是在程序需要连接多个数据库的情况下使用,否则一般使用 connect 来打开默认的数据库连接,这时候我们就可以用 mongoose.model 来创建我们的 Model 了。

TAT.Perlt void 操作符
In 未分类 on 2015年06月30日 by view: 2,272
0

语法

描述

这个操作符允许插入一个计算结果等效于 undefined 的表达式。
void 操作符经常仅仅是用来获得 undefined 值,比如经常使用到的 “void(0)”(这等效于 “void 0”)。

Strong Mode 介绍
In 未分类 on 2015年06月30日 by view: 2,835
7
If it is too strong, then you are too weak.

就算是背景吧

随着 ES2015 的到来,JavaScript 引进了许多新特性,很多很强大的特性完全可以弥补 JS 本身语法上的弱点,比如让很多初次尝试 JS 的程序员感到不习惯的变量提升问题、没有块级作用域问题等问题。

strong mode

ES5 增加了 strict mode,现在 V8 又实现了一种新的模式——strong mode

strong modestrict mode 的升级版,在语法要求上更严格了,同时正因为这些严格的要求,让开发者得以规避语言本身一些糟粕或者让人困惑的地方。