- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 js实现的哈夫曼编码
修改版function Huffman(str) { // 需要编码的字符串 this.str = str; // 键和频率映射表 this.keyCountMap = null; // 编码和键的映射表 this.codeKeyMap = {}; // 键和编码的映射表 this.keyCodeMap = {}; //
2017-07-30 15:42:44 1332
原创 关于c语言中删除单向链表节点的问题
二话不说先上代码,这是摘自网上的一段代码,用以解读题目所说的问题。// 假设h为指向链表头结点指针,那么head就是指向h指针的指针void delete(node ** head){ for (node** curr = head; *curr; ) { /* curr指向h的地址,所以*curr的值是h内存里存的东西,也就是 第一个节点
2017-07-29 02:57:10 985
原创 javascript中私有属性的实现。
// 保持所有私有数据的mapvar map = new WeakMap();// 默认的数据存取函数var defaultFn = { has: function(key) { return !!this[key]; }, get: function(key) { return this[key]
2017-07-23 05:05:56 586
原创 es6-Proxy
es6代理的一个好处就是可以给对象挂钩子,以前我们只能给对象的属性挂getter,setter,而现在,我们可以用Proxy给整个对象挂钩子。function fn(option) { this.x = option.x; this.y = option.y;}function getGroxyConstructor(fn, settings) { return func
2017-07-22 07:16:39 340
原创 webkit源码解读-FileList
FileList是文件组件的表示形式,是一个包装了系列File对象的对象。里面通过vector保持多个文件对象。class FileList : public ScriptWrappable, public RefCounted<FileList> {public: // 需要用create创建该类对象 static Ref<FileList> create() { /
2017-07-22 05:01:49 585
原创 js的co.js源码解析
co的主要思想是利用把每个yield后面的值转成一个Promise对象,然后给该Promise对应注册fulfilled和rejected两个回调,在这两个回调里会执行next函数,进行下一步迭代,也就是执行下一个yield,从而不断地向前驱动迭代器,直到执行完毕或者出错。co的好处: var content = yield readSomethingAsync(); console
2017-07-16 16:46:53 2251
原创 用nodejs创建一个http2服务器
使用谷歌的spdy协议。首先安装spdy协议,npm install spdyconst http2 = require('./node_modules/spdy/lib/spdy');var fs = require('fs');var options = { key: fs.readFileSync('./files/server-key.pem'), ca: [fs.rea
2017-07-12 00:10:38 1952
原创 用nodejs创建一个https服务器
var https = require('https');var fs = require('fs');var options = { key: fs.readFileSync('./files/server-key.pem'), ca: [fs.readFileSync('./files/ca-cert.pem')], cert: fs.readFileSync('./f
2017-07-12 00:07:50 608
原创 webpack生成代码
webpack.config.jsconst path = require('path');module.exports = { entry: './file.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' }};file.jsvar tmp = require('.
2017-07-09 23:58:17 768
原创 json序列化
var isObject = function(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; } var isArray = function(arr) { return Object.prototype.toString.call(arr) === '
2017-07-08 04:46:02 271
原创 基于js状态机的http协议解析器
var utils = { getType: function(content) { return Object.prototype.toString.call(content).match(/\[object (.*)\]/)[1]; }, isType: function(content, type) { return this.getTy
2017-07-06 03:48:11 1046
原创 js迭代器
function Iterator(content, cfg) { this.content = content; this.length = 0; this.count = 0; this.position = 0; this.direction = (cfg && cfg.direction) || 0; this.init(cfg);}Ite
2017-07-04 23:32:44 403
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人