![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
node架构
文章平均质量分 68
问也去
GIS开发工程师,欢迎交流学习
展开
-
node中base64的转换规则
base64转换规则 base64可以编码任何东西,其基于二进制,方便传输,我们可以尝试编译一段文字 输入无敌且英俊 node中汉字占3个字节,一个字节有8位,我们需要将函子转为二进制,只需要利用BUffer转为16进制再转为2进制即可 可以判断,五个汉字转为二进制一共120位 由于base64规定,每个字节不能超过64,我们可以推测出,一个字节8位的话有2**8 = 256,所以我们要重新分配每个字节的内容,使之不能超过64 由 15*8 -> 20 * 6 如: 11100111 10原创 2022-05-26 10:36:57 · 860 阅读 · 0 评论 -
node中events模块简单实现
node中events模块的简单实现 node中events模块是一个发布订阅类 events的应用 简单的发布订阅 const EventEmitter = require("events") const { grep } = require("jquery") const girl = new EventEmitter() //订阅 girl.on('失恋了',function(boy){ console.log('哭',boy)原创 2022-05-25 11:03:47 · 368 阅读 · 0 评论 -
模拟node中require加载机制实现
node中require加载机制 node中的模块加载规范为commonJS规范,规范中通过require来引入模块。 require源码探究 暴漏出一个text模块 let str = 'hello world' module.exports = str node中的源码无法通过打断点进行调试,这里借助vscode,在debug模式中,新建launch.js文件,并且将"skipFiles"内容 清空,表示不跳过node核心代码,然后在require处打断点,即可进入require内部源码原创 2022-05-23 20:02:10 · 154 阅读 · 0 评论 -
浏览器事件环及相关习题
浏览器事件环 进程与线程 计算机分配任务是以进程来分配,进程中包含着线程 浏览器是一个进程,而且是一个多进程模型(多进程好处就是一个进程挂掉不会影响其它进程) 一个tab就是一个独立的进程 浏览器默认有一个主进程,来调度其它进程(进程间的通信) 插件也有独立的进程管理 gpu有绘图进程 浏览器的渲染进程 ui 渲染线程 负责页面渲染,布局,绘制 js引擎线程 执行js代码的 这两种线程是互斥的,不能同时执行,原因是js引擎可能会操作dom,而渲染进程依赖dom js是单线程的,但主要指原创 2022-05-17 21:32:00 · 202 阅读 · 0 评论 -
异步回调目前的解决方案:从generator到async
从generator到async 迭代器 什么叫类数组 有索引 有长度 能遍历 let likeArray = { 0:0, 1:1, 2:2, 3:3, length:4 } let arr = [...likeArray]//报错 上述并不是类数组,因为无法进行解构,说明迭代不了 数组能遍历,是因为内部有迭代的方法,通过Symblo可以给上述类型设置迭代方法,使之成为类数组 const { values } =原创 2022-05-16 22:17:54 · 288 阅读 · 0 评论 -
promise实现
promise的理解及实现 基于回调的异步解决方案缺陷 js通常采用四种异步解决方案:回调、promise、Generator、async/await 回调解决方案 通常异步的操作需要放入回调中进行执行,若要执行串行异步,则容易造成回调嵌套 promise优势 通过then来实现异步的执行,解决了回调嵌套问题(本质 依然是回调) 解决异步并发问题(promise.all) 使错误处理变得简单 promise实现 初步实现思路 基本状态实现 添加then 显示异步操作 const原创 2022-05-13 16:16:35 · 183 阅读 · 0 评论 -
高阶函数常见场景
高阶函数 高阶函数类型 一个函数返回一个函数 一个函数的参数是高阶函数 高阶函数作用 高阶函数可以对一个函数进行扩展,使之在执行阶段能有其它业务处理 形式1 function fn(){ return function(){} } 形式2 function(cb){ cb() } 例如扩展一个函数,在其执行之前,进行其它操作 function core (a,b,c){ console.log(a,b,c) } Function.prototype.before原创 2022-05-09 15:39:33 · 380 阅读 · 0 评论