- 博客(12)
- 收藏
- 关注
原创 node.js模块的加载机制
1. 优先从缓存中加载模块模块在第一次加载后会被缓存,即多次调用require()方法不会导致模块的代码被执行多次。不论是内置模块,用户自定义模块或第三方模块,它们都会优先从缓存中加载,从而提高模块的加载效率。2. 内置模块的加载机制内置模块是由node.js官方提供的模块,内置模块的加载优先级最高。例如,即使在node_modules目录下有同名的第三方模块,require(‘fs’)也始终返回内置的fs模块。3. 自定义模块的加载机制当调用require()方法加载自定义模块时,必须指定以
2021-09-21 10:58:35 465
原创 node.js自定义模块中的module.exports
1.node.js的模块作用域和函数作用域类似,在自定义模块中定义的变量方法等成员,只能在当前模块内访问,这种模块识别的访问机制,叫模块作用域。模块作用域的好处是防止全局变量的污染。但仍有方法向外暴露自定义模块中的成员,以供外界使用。2.向外共享模块作用域中的成员相关的几个概念:modulemodule:每个.js自定义模块中都有一个module对象,存储了和当前模块有关的信息module.exports在自定义模块中,可以使用module.exports对象,把模块中的成员共享出去
2021-09-20 21:39:55 436
原创 es6之Map的第一个元素的获取方法
是从力扣中的LRU缓存机制这道题的题解中看到的,题解中用Map实例记录缓存,其中一种情况是当缓存容量达到上限时,删除最久未使用的数据值,即Map实例的第一个元素。let map=new Map([['key1','value1']])//Map 原生提供三个遍历器://keys():返回键名的遍历器。//values():返回键值的遍历器。//entries():返回所有成员的遍历器。//map获取第一个元素console.log(map.entries().next().value)/
2021-08-31 17:05:11 7475
原创 二分查找基础模板
二分查找使用场景:查找目标具有单调性质;有上下边界,并且最好能够通过index下标访问元素let left = startlet right = endlet midwhile (left <= right) { mid = (left + right) / 2 if (array[mid] === target) { return result 或者 break down } if (array[mid] < target) {
2021-08-26 16:30:04 67
原创 JavaScript实现几种常见的排序排序算法
1.Array类的封装class Array { constructor() { this.array = []; Array.prototype.insert = function (arr) { this.array.push(arr) } Array.prototype.toString = function () { return this.array.join(" ") }
2021-07-18 22:50:55 308 1
原创 JavaScript实现图结构和部分方法以及BFS,DFS的封装
1.先实现一个队列结构用于后面实现广度优先算法class Queue{ constructor(){ this.items=[]; Queue.prototype.enqueue = function (element) { this.items.push(element) } Queue.prototype.dequeue = function () { return this.it
2021-07-17 14:13:21 132
原创 JavaScript实现二叉搜索树结构以及部分方法的封装
class BinarySearchTree { constructor() { // 节点类 class Node { constructor(key) { this.key = key; this.left = null; this.right = null; } } // 二叉搜索树的根
2021-07-14 23:36:19 217 6
原创 JavaScript实现哈希表数据结构以及部分方法的封装
class HashTable { constructor() { // storage为数组,采用拉链法(效率更高),数组中存放另一数组,另一数组中保存的key和value值即是真正的想要存放数据,整个哈希表类似于三维数组的结构 this.storage = []; // count用来表示已经数组中存放了多少数据 this.count = 0; // limit表示哈希表的总长度 this.limit
2021-07-12 17:17:46 119 1
原创 Set数据结构的部分方法的封装(JavaScript)
class Set{ constructor(){ this.items={} }}// 1.has方法检测集合中是否包含该元素Set.prototype.has=function(value) { return this.items.hasOwnProperty(value)}// 2.add添加元素Set.prototype.add=function(value){ if(!this.has(value))return false; t
2021-07-11 23:17:01 99 2
原创 单向链表结构以及其他常用方法的封装(JavaScript)
class LinkedList { constructor() { //内部的类:节点类 class Node { constructor(data) { this.data = data; this.next = null; } } //属性 this.head = null; this.l
2021-07-11 15:59:40 126 2
原创 用队列方式实现击鼓传花(JavaScript)
//先封装一下队列的一些方法function Queue() { this.items = []};Queue.prototype.enqueue = function (element) { this.items.push(element)}Queue.prototype.dequeue = function () { return this.items.shift();}Queue.prototype.size = function () { return
2021-07-10 20:39:32 231 3
原创 移动端touch事件实现拖动元素的效果
html部分是一个div盒子css部分 <style> div { background-color: pink; height: 100px; width: 100px; //这里要加绝对定位或者相对定位 position: relative; } <style>js部分<script>
2021-06-10 17:00:34 632 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人