摘要: 判断数组的方式有哪些 通过Object.prototype.toString.call()做判断 Object.prototype.toString.call(obj).slice(8,-1) 'Array'; 通过原型链做判断 obj.__proto__ Array.prototype; 通过ES 阅读全文
posted @ 2023-03-15 12:41 coder2028 阅读(262) 评论(0) 推荐(0) 编辑
摘要: nodejs是单线程执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得我们不用等待异步操作结果返回,就可以继续往下执行代码。当异步事件触发之后,就会通知主线程,主线程执行相应事件的回调。 以上是众所周知的内容。今天我们从源码入手,分析一下nodejs的事件循环机制。 nodejs架构 首先 阅读全文
posted @ 2023-03-15 12:41 coder2028 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 作用域 作用域: 作用域是定义变量的区域,它有一套访问变量的规则,这套规则来管理浏览器引擎如何在当前作用域以及嵌套的作用域中根据变量(标识符)进行变量查找 作用域链: 作用域链的作用是保证对执行环境有权访问的所有变量和函数的有序访问,通过作用域链,我们可以访问到外层环境的变量和 函数。 作用域链的本 阅读全文
posted @ 2023-03-15 12:41 coder2028 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 此处如无特殊指出的话,event loop的语境都是指nodejs 本文研究所用的nodejs环境是:操作系统window10 + nodejs版本号为v12.16.2 什么是event loop? event loop是指由libuv提供的,一种实现非阻塞I/O的机制。具体来讲,因为javascr 阅读全文
posted @ 2023-03-15 12:40 coder2028 阅读(90) 评论(0) 推荐(0) 编辑
摘要: setTimeout、Promise、Async/Await 的区别 (1)setTimeout console.log('script start') //1. 打印 script start setTimeout(function(){ console.log('settimeout') // 阅读全文
posted @ 2023-03-01 21:36 coder2028 阅读(189) 评论(0) 推荐(0) 编辑
摘要: jwt是json web token的简称,本文介绍它的原理,最后后端用nodejs自己实现如何为客户端生成令牌token和校验token 1.为什么需要会话管理 我们用nodejs为前端或者其他服务提供resful接口时,http协议他是一个无状态的协议,有时候我们需要根据这个请求的上下获取具体的 阅读全文
posted @ 2023-03-01 21:36 coder2028 阅读(97) 评论(0) 推荐(0) 编辑
摘要: Iterator迭代器 Iterator(迭代器)是一种接口,也可以说是一种规范。为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。 Iterator语法: const obj = { [Symbol.iterat 阅读全文
posted @ 2023-03-01 21:35 coder2028 阅读(20) 评论(0) 推荐(0) 编辑
摘要: node.js 初探 Node.js 是一个 JS 的服务端运行环境,简单的来说,它是在 JS 语言规范的基础上,封装了一些服务端的运行时对象,让我们能够简单实现非常多的业务功能。 如果我们只使用 JS 的话,实际上只是能进行一些简单的逻辑运算。node.js 就是基于 JS 语法增加与操作系统之间 阅读全文
posted @ 2023-03-01 21:35 coder2028 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 发布订阅模式(事件总线) 描述:实现一个发布订阅模式,拥有 on, emit, once, off 方法 class EventEmitter { constructor() { // 包含所有监听器函数的容器对象 // 内部结构: {msg1: [listener1, listener2], ms 阅读全文
posted @ 2023-02-28 11:33 coder2028 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 最近写nodejs脚本的时候遇到了commonjs和ESModule的问题,正好之前用得稀里糊涂的,这次好好学习一下。 ES Module 导出 仅导出 named exports: 命名导出,每次可以导出一个或者多个。 default exports: 默认导出,每次只能存在一个。 以上两者可以混 阅读全文
posted @ 2023-02-28 11:32 coder2028 阅读(51) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示