摘要: 全局对象: global:永远使用var 定义变量以避免引入全局变量; process:所有全局执行上下文的内容都在process对象中; 模块和包: 模块:一个Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、JSON 或者编译过的 C/C++ 扩展。Node.js 提 阅读全文
posted @ 2014-10-27 20:56 JinksPeng 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 非阻塞IO: node.js使用了事件轮询 setTimeout是非阻塞的; 对于像http,net等原生模块中IO部分也采用了事件轮询,其本质是: 当node接受到浏览器的http请求时,底层的TCP连接会分配一个文件描述符;然后,当客户端向服务器发送数据,node会收到该文件描述符上的通知,然后 阅读全文
posted @ 2014-10-27 19:01 JinksPeng 阅读(183) 评论(0) 推荐(0) 编辑
摘要: npm //Node.js Package Manager 查询版本号:npm --version/npm version 查询模块:npm search <name> 查看模块相关信息: npm view <name> 安装模块: mkdir project cd project npm inst 阅读全文
posted @ 2014-10-26 19:01 JinksPeng 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 动态规划: 递归是从顶部开始将问题分解,通过解决所有分解出小问题来解决整体问题; 动态规划从底部开始解决问题,将所有小问题解决,然后合并掉一个整体解决方案; 背包问题: 递归解决: 动态规划: 阅读全文
posted @ 2014-10-25 12:04 JinksPeng 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 顺序查找:也称线性查找,暴力查找的一种 基本格式: var nums = []; for(var i = 0; i < 10; ++i) { nums[i] = Math.floor(Math.random() * 101); } function seqSearch(arr,data) { for 阅读全文
posted @ 2014-10-25 10:48 JinksPeng 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 单元测试被限定在一个范围内,并且不需要Ember应用运行。 使用前准备: 加入Ember-QUnit:获取一系列测试助手帮助单元测试;加入 mian.js; 加入根元素(与集成测试的时候一样):App.rootElement = '#ember-testing'; 设置单元测试: Ember.set 阅读全文
posted @ 2014-10-20 10:38 JinksPeng 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 高级排序算法:(处理大数据:百万以上) 希尔排序:是插入排序的优化版; 首先设置间隔数组,然后按照每个间隔,分别进行排序; 如第一个间隔为5,首先a[5]与a[0]进行插入排序;然后a[6]和a[0],a[1]进行插入排序,直到最后一个; 然后换下一个间隔值,直到所有间隔值排序完(当间隔值为1时,就 阅读全文
posted @ 2014-10-20 09:11 JinksPeng 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 基本准备: 基本排序算法: 冒泡排序:最容易实现也是最慢的算法之一 从头开始依次分别比较相邻的两个元素并排序,直到最后一个;此时确定最后一个会是最大的; 重复上面步骤但不比较已经确定的,此时确定最后第二个是第二大的; 继续重复直到剩下第一个元素为止,确定它是最小的; 从头开始依次分别比较相邻的两个元 阅读全文
posted @ 2014-10-19 17:23 JinksPeng 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 图:是由边和定点的集合组成; 按照图的定点对是否有序可以分为:有向图和无向图; 路径:所有顶点都由边连接构成;路径长度为第一个定点到最后一个顶点之间的数量; 环:指向自身的顶点,长度为0;圈:至少有一条边的路径,且第一个顶点和最后一个顶点相同; 强连通:如果两个顶点之间有路径,则这两个顶点就是强连通 阅读全文
posted @ 2014-10-18 19:14 JinksPeng 阅读(1072) 评论(1) 推荐(0) 编辑
摘要: 树:以分层的方式存储数据;节点:根节点,子节点,父节点,叶子节点(没有任何子节点的节点);层:根节点开始0层; 二叉树:每个节点子节点不超过两个;查找快(比链表),添加,删除快(比数组); BST:二叉树查找: 设置根节点为当前节点; 如果要插入的节点小于当前节点,则设置其左节点为新的当前节点;大于 阅读全文
posted @ 2014-10-18 11:24 JinksPeng 阅读(379) 评论(2) 推荐(1) 编辑
摘要: 集合:唯一性,无序性; 基本结构: 操作:demo 集合的基本操作:并集,交集,补集; 并集: 操作: demo; 交集: 操作: demo; 补集: 父集判断: 操作:demo 阅读全文
posted @ 2014-10-17 20:45 JinksPeng 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 哈希表(散列表):通过哈希函数将键值映射为一个字典; 哈希函数:依赖键值的数据类型来构建一个哈希函数; 一个基本的哈希表:(按字符串计算键值) 操作:demo:; 可能出现的问题: 碰撞;即在哈希函数计算的时候出现相同的哈希值; 解决:这要解决哈希函数的计算问题;如上面定义中哈希函数,是求余计算:这 阅读全文
posted @ 2014-10-17 16:13 JinksPeng 阅读(365) 评论(0) 推荐(0) 编辑
摘要: Dictionary类的基础是数组不是对象;字典的主要用途是通过键取值; 基本定义: 操作:demo 添加其他功能: 统计: function count() { return Object.keys(this.dataStore).length; } 清空: function clear() { 阅读全文
posted @ 2014-10-17 14:09 JinksPeng 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 数组: 其他语言的数组缺陷:添加/删除数组麻烦; js数组的缺点:被实现为对象,效率低; 如果要实现随机访问,数组还是更好的选择; 链表: 结构图: 基本代码: function Node (elem) { this.elem = elem; this.next = null; } function 阅读全文
posted @ 2014-10-17 11:45 JinksPeng 阅读(202) 评论(0) 推荐(0) 编辑
摘要: emberjs使用的测试工具为qunit.js: 加载:将runner.js添加到Index.html;大致内容: 其中ember-testing是显示原本页面的部分,通过runner.css来设置;在原本页面中将在url最后添加"?test"跳转到测试页面; test.js的基本结构: integ 阅读全文
posted @ 2014-10-16 15:28 JinksPeng 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 队列是一种特殊的列表,数据结构为FIFO; 定义: 例子: 舞伴分配: demo; 基数排序:demo; 优先队列:demo; 阅读全文
posted @ 2014-10-16 10:26 JinksPeng 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 在测试中,如果用到了大量相同的方法返回判断结果,可以将他们简化; 使用push(): 例子: 通过rul筛选:在URL上添加?filter=name-of-test 阅读全文
posted @ 2014-10-15 16:46 JinksPeng 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 原子性: 当将许多测试用例放到一起测试的时候,可能会因为相互的副作用而出错;这个时候应该尽可能将他们分别放到test()中测试; 对应测试到Dom,应该尽可能地使用#qunit-fixture,因为它会在一次测试完之后自动清除绑定; 分组测试: 在将测试分割之后,考虑到逻辑性,可能需要将他们进行分组 阅读全文
posted @ 2014-10-15 16:06 JinksPeng 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 模拟操作: elem.trigger(event); elem.triggerHandler(event); triggerHandler的不同: 不会引起事件的默认行为 .trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。 阅读全文
posted @ 2014-10-15 15:31 JinksPeng 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 同步: 有时候如果我们想判断方法执行的次数,可以通过间接设置expect(n);//可以将expect的参数放到test的第二参数来简化; 同理,除了方法执行次数外,还可以判断事件发生次数; 异步: 在异步上,需要使用asyncTest替代test;同时使用start方法标记,当异步方法返回之后继续 阅读全文
posted @ 2014-10-15 14:23 JinksPeng 阅读(614) 评论(0) 推荐(0) 编辑