自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

libv8_monolith.a.zip

libv8_monolith.a.zip

2021-07-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除