- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 v8中字符串padding函数源码分析
padding函数作用是把一个字符串拓展到某个长度,前面或者后面多出来的位置用给定的字符串填充// Copyright 2016 the V8 project authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the L
2017-09-29 01:18:14 364
原创 js数据的深度迭代
var _rawTostring = Object.prototype.toString; // 使用最原始的而不是直接调用对象的hasOwnerProperty,防止对象该属性被重写 var _hasOwnerProperty = Object.prototype.hasOwnProperty; function type(target) { return _
2017-09-29 00:17:11 574
原创 浅析v8中weakSet和weakMap(待续)
图中为整个代码的执行过程。从js层初始化一个集合到底层的实现,其他的增删改查也类似的流程。底层是一个由UHashElement结构体组成的数组,UHashElement结构体包括每个元素的键值和哈希值。UHashtable中还含有一些扩大和缩小哈希表的操作。set和map基本类似,下面通过代码大概了解一下。function WeakMapConstructor(iterable) { // 必须
2017-09-28 01:59:32 719
原创 js编码函数encodeURIComponent源码解析
function URIAddEncodedOctetToBuffer(octet, result, index) { result[index++] = 37; // Char code of '%'. result[index++] = hexCharCodeArray[octet >> 4]; result[index++] = hexCharCodeArray[octet & 0
2017-09-26 23:15:04 1654
原创 nodejs中循环require的解决方案
Module._load = function(request, parent, isMain) { if (parent) { debug('Module._load REQUEST %s parent: %s', request, parent.id); } var filename = Module._resolveFilename(request, parent, isMa
2017-09-23 02:15:43 2664
原创 阻塞、非阻塞、同步、异步的理解
阻塞、非阻塞和同步、异步都是描述了这样的一种场景,当我们去获取一样东西时,没有立刻得到时,我们怎么办。 但是他们两两不是一个层次的描述。阻塞、非阻塞描述的是某人想得到一样东西时,如果没有得到,某人会怎么办,这里的重点是某人。如果某人一直在等待而不做其他事情,那就是阻塞,反之是非阻塞。 同步、异步描述的是如果某人想得到的东西,已经可以得到时,如何通
2017-09-10 03:37:24 303
原创 js实现一个粗略的四则运算解释器
这样的一个解释器几乎没用,不过只是为了学习一下解释器的知识,有空继续学习。function Context(map) { this.map = map;}Context.prototype.getContext = function() { return this.map;}var context;function AbstractExpression() {}AbstractE
2017-09-03 21:22:40 613
原创 js设计模式之Facade
原始实现获取用户信息的代码function getUserName() { return 'name';}function getUserAge() { return 'age';}var userName = getUserName();var userAge = getUserAge();console.log(userName,userAge);使用Facade模式实现
2017-09-02 01:48:32 309
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人