goodBlog
goodBlog copied to clipboard
我是koala, 公众号【程序员成长指北】的作者, 专注Node.js技术栈分享,从前端到Node.js再到后端数据库,帮您成为优秀的Node.js全栈工程师。和我一起进阶全栈吧!
 ## 前言 之前在做`webpack`配置时候多次用到路径相关内容,最近在写项目的时候,有一个文件需要上传到阿里云oss的功能,同时本地服务器也需要保留一个文件备份。多次用到了文件路径相关内容以及Node核心API的`path`模块,所以系统的学习了一下,整理了这篇文章。 ## node中的路径分类 node中的路径大致分5类,`dirname`,`filename`,`process.cwd()`,`./`,`../`,其中`dirname`,`filename`,`process.cwd()`绝对路径 通过代码对每个分类进行说明: 文件目录结构如下: ``` 代码pra/ - node核心API/ - fs.js - path.js ``` path.js中的代码 ```javascript const path = require('path'); console.log(__dirname); console.log(__filename); console.log(process.cwd()); console.log(path.resolve('./')); ``` 在代码pra目录下运行命令...
 ## 前言 为什么写拷贝这篇文章?同事有一天提到了拷贝,他说赋值就是一种浅拷贝方式,另一个同事说赋值和浅拷贝并不相同。 我也有些疑惑,于是我去MDN搜一下拷贝相关内容,发现并没有关于拷贝的实质概念,没有办法只能通过实践了,同时去看一些前辈们的文章总结了这篇关于拷贝的内容,本文也属于公众号【程序员成长指北】学习路线中【JS必知必会】内容。 ## 数据类型与堆栈的关系 ### 基本类型与引用类型 - 基本类型:undefined,null,Boolean,String,Number,Symbol - 引用类型:Object,Array,Date,Function,RegExp等 ### 存储方式 - 基本类型:基本类型值在内存中占据固定大小,保存在`栈内存`中(不包含`闭包`中的变量)  - 引用类型:引用类型的值是对象,保存在`堆内存`中。而栈内存存储的是对象的变量标识符以及对象在堆内存中的存储地址(引用),引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。  **注意:** 1. `闭包`中的变量并不保存在栈内存中,而是保存在堆内存中。这一点比较好想,如果`闭包`中的变量保存在了`栈内存`中,随着外层中的函数从调用栈中销毁,变量肯定也会被销毁,但是如果保存在了堆内存中,内存函数仍能访问外层已销毁函数中的变量。看一段对应代码理解下: ```javascript function A() { let a...
 ## 前言 一道经典面试题: ```javascript //JS实现一个无限累加的add函数 add(1) //1 add(1)(2) //3 add(1)(2)(3) //6 ``` 当大家看到这个面试题的时候,能否在第一时间想到使用**高阶函数**实现?想到在实际项目开发过程中,用到哪些高级函数?有没有想过自己创造一个高阶函数呢?开始本篇文章的学习 ## 高阶函数定义 `高阶函数`英文叫 `Higher-order function`。高阶函数是对其他函数进行操作的函数,操作可以是将它们作为参数,或者返回它们。简单总结为高阶函数是`一个接收函数作为参数`或者将`函数作为返回输出`的函数。 ## 函数作为参数情况 `Array.prototype.map`,`Array.prototype.filter`,`Array.prototype.reduce`和`Array.prototype.sort`是JavaScript中内置的高阶函数。它们接受一个函数作为参数,并应用这个函数到列表的每一个元素。下面是一些内置高阶函数的具体说明讲解,以及和不使用高阶函数情况下的对比 ## Array.prototype.map `map()`(映射)方法最后生成一个新数组,不改变原始数组的值。其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 ```JavaScript array.map(callback,[ thisObject]); ``` callback(回调函数)...
 ## 1. 什么是作用域 作用域是你的代码在运行时,某些特定部分中的变量,函数和对象的可访问性。换句话说,作用域决定了变量与函数的可访问范围,即`作用域控制着变量与函数的可见性和生命周期`。 ## 2. JavaScript中的作用域 在 JavaScript 中有两种作用域 - 全局作用域 - 局部作用域 如果一个变量在函数外面或者大括号`{}`外声明,那么就定义了一个`全局作用域`,在ES6之前局部作用域只包含了函数作用域,**ES6为我们提供的`块级作用域`**,也属于局部作用域 ### 2.1 全局作用域 拥有全局作用域的对象可以在代码的任何地方访问到, 在js中一般有以下几种情形拥有全局作用域: 1. 最外层的函数以及最外层变量: ```JavaScript var globleVariable= 'global'; // 最外层变量 function...
Bumps [valine](https://github.com/xcss/Valine) from 1.4.14 to 1.5.0. Release notes Sourced from valine's releases. v1.5.0 U 优化代码逻辑,增加对Windows 11的支持 由于UA相同,部分Windows 10可能会识别成Windows 11 F 修复可能存在的xss漏洞 #400 F 修复图片无法上传的问题 #396 #380 F 修复时间格式显示NaN-NaN-NaN的问题 v1.4.18 F...
博客的图片丢失了
Bumps [minimist](https://github.com/minimistjs/minimist) and [mkdirp](https://github.com/isaacs/node-mkdirp). These dependencies needed to be updated together. Updates `minimist` from 1.2.0 to 1.2.8 Changelog Sourced from minimist's changelog. v1.2.8 - 2023-02-09 Merged [Fix] Fix long option...
Bumps [cookiejar](https://github.com/bmeck/node-cookiejar) from 2.1.2 to 2.1.4. Commits See full diff in compare view [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter...
Bumps [express](https://github.com/expressjs/express) from 4.17.1 to 4.18.2. Release notes Sourced from express's releases. 4.18.2 Fix regression routing a large stack in a single route deps: [email protected] deps: [email protected] perf: remove unnecessary...
Bumps [qs](https://github.com/ljharb/qs) from 6.5.2 to 6.5.3. Changelog Sourced from qs's changelog. 6.5.3 [Fix] parse: ignore __proto__ keys (#428) [Fix] utils.merge: avoid a crash with a null target and a truthy...