自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蓝冰凌的博客

冰,愈冷愈坚!

  • 博客(73)
  • 收藏
  • 关注

原创 【错题本】js事件循环机制下,记录一个意外错误

上面的代码输出:script start、async1 start、async2、promise1、script end、async1 end、promise2、setTimeout。第二道题时,我出现一个疑惑,当await 后面跟的不是一个 Promise 对象(而是一个同步值或已经解决的 Promise),那么await 后面的代码会被放入微任务队列吗?上面的代码输出:children4、start、children2、children3、children5、children7、children6。

2025-02-10 14:48:22 222

原创 迭代器和生成器

迭代器迭代器是一个对象,它实现了迭代器协议,允许你按顺序逐个访问集合中的元素。迭代器对象具有一个next()方法,该方法每次调用时都会返回集合中的下一个元素,直到遍历完所有元素。迭代器主要用于遍历可迭代对象(如数组、字符串、MapSet等),提供了一种统一的遍历机制。生成器生成器是一种特殊的函数,它能够在执行过程中暂停并恢复执行。生成器函数使用function*语法定义,并通过yield关键字来产生值。生成器函数返回的是一个迭代器对象,该对象也实现了迭代器协议,因此可以使用。

2025-01-22 14:55:08 597

原创 【整理】js逆向工程

JavaScript逆向工程(ReverseEngineering)是指分析和理解已编译或已部署的JavaScript代码的过程,以便了解其工作原理、找到漏洞、进行修改或复制其功能。这个过程通常用于安全研究、调试、性能优化或破解某些软件。逆向工程在某些情况下可能涉及法律问题,尤其是当用于破解版权保护的软件时。确保你的行为符合当地法律和行业准则。

2025-01-21 14:42:06 1642

转载 1 行命令引发的Go应用崩溃

以上就是 Go 自动插桩工具在使用 go build -race 时出现崩溃的分析全过程。通过对崩溃内容和调用链的排查,我们找到了产生问题的根本原因以及相应的解决方案。这将有助于我们在理解运行时机制的基础上,更加谨慎地编写注入到运行时的代码。最后诚邀大家试用我们的Go自动插桩商业化产品2,并加入我们的钉钉群(开源群:102565007776,商业化群:35568145),共同提升Go应用监控与服务治理能力。通过群策群力,我们相信能为Go开发者社区带来更加优质的云原生体验。1。

2025-01-16 09:33:19 53

原创 【整理】nodejs框架技术选型

Express是 NodeJS 早期率先出现的一款框架,现在仍然非常流行,包括前端本地开发常用的 WebpackDevServer,底层就是基于它实现的。随着 ECMAScript 的发展,Async Functions(ES2017)同步方式写异步代码的方式开始流行,KoaJS一个新的 web 框架,由 Express 原班人马打造,诞生了。不同于前两者,NestJS 是一套成体系的 NodeJS 后端开发框架。Midway 是阿里推出的一款基于渐进式理念研发的 Node.js 框架。

2024-12-05 16:05:04 1290

原创 【整理】自执行函数

自执行函数在js开发中经常用到,尤其是用于脚本,插件,等私有代码类的场景。创建私有变量和函数,这些变量和函数只能在该函数的作用域内访问,从而避免了全局命名空间的污染,保证自己的代码纯洁性。

2024-11-22 11:10:40 344

原创 前端pdf预览方案

pdf预览一般不需要前端生成pdf文件,pdf文件一般是通过接口,获取pdf文件【responseType:‘blob’,】或二进制文件流【responseType: ‘arraybuffer’,】或者已有的pdf文件。PDF.js作为Mozilla开发的一个JavaScript库,旨在提供一个纯JavaScript实现的PDF文件解析和渲染解决方案,使用户能在浏览器环境中无缝地查看PDF文档,而无需依赖任何插件。如果可以用,这个插件使用还是很方便的,但是如果有问题,还是换回pdf.js吧。

2024-11-15 13:48:28 2512

原创 安装Docker、切换镜像源以及拉取镜像示例

我的服务器系统是CentOS 7.9,所以就以CentOS 7.9举例,仅供参考,欢迎指正。

2024-10-15 17:29:24 1830

原创 云服务器Docker内部署服务后,端口无法访问?

当你检测你的操作都没问题,还不行的话, 只能是服务器的问题,既然是服务器的问题,那就得找客服。

2024-08-14 14:43:57 1116 1

原创 package.json的配置

文件是Node.js项目中的一个重要配置文件,用于存储项目的元数据和各种配置信息。

2024-05-27 13:35:32 1214

原创 Tree Shaking技术解析

因此,在使用Tree Shaking时,开发者需要注意编写可静态分析的代码,以确保最终生成的文件能够得到有效优化。通过对模块依赖关系的分析,工具可以确定哪些代码是被实际使用的,哪些是未使用的。Tree Shaking的基础,我个人理解Tree Shaking的技术基础就是esm,正是esm的特性(具体如下),所以在打包过程中,可以做到区分代码是否用到。这个图记录了每个模块之间的依赖关系。Tree Shaking技术其实就是代码按需打包技术,就是在打包过程中,只打包实际使用的代码,从而减少打包的体积。

2024-05-09 10:43:56 306

原创 设计模式-策略模式

定义: 根据不同参数可以命中不同的策略。

2024-04-18 10:37:15 519

原创 vscode setting配置

记录自己的vscode配置,会不断优化。

2024-03-22 15:34:13 946

原创 const XX=void0

demo()

2024-03-08 14:40:23 658 1

原创 (0, function)(param)结构

在读一些源码的时候,发现许多函数在调用时,都采用了的形式调用,这种结构的作用和原理是什么?下面我们就说一下(0, function)(param)结构。

2024-03-08 14:37:43 219

转载 九个 Vue.js 性能优化的技巧

Vue; 性能优化;转载;前端

2023-02-17 15:31:00 323

原创 react hooks父子组件的代码执行顺序

react hooks

2022-12-16 16:29:40 1401

原创 fuc-js判断合集

const toString = Object.prototype.toString;export function is(val: unknown, type: string) { return toString.call(val) === `[object ${type}]`;}export function isDef<T = unknown>(val?: T): val is T { return typeof val !== 'undefined';}expor

2022-04-06 09:51:22 407

原创 高阶函数,闭包的应用:函数柯里化(function currying)

函数柯里化(function currying)currying 又称部分求值。一个 currying 的函数首先会接受一些参数,接受了这些参数之后, 该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包中被保存起来。待到函数被真正需要求值的时候,之前传入的所有参数都会被一次性用于求值。实例假设我们要编写一个计算每月开销的函数。每天结束后我们都会记录并计算到今天为止花掉的钱。但我们其实并不太关心每天花掉了多少钱,而只想知道到月底的时候会花掉多少钱。也就是说,实际上只需要在月底

2022-03-31 09:43:59 304

原创 AOP(面向方面编程)以及Function.prototype扩展

oop(面向对象编程),aop(面向方面编程)。oop就是把多个对象的相同功能单独分离出去,封装成组件或者函数。oop举例:前端的组件和函数;axios封装,权限认证、日志、事务处理等。oop主要分两类:1,一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;(前端我想到了装饰器(Decorator))2,是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码在 JavaScript 中实现 AOP,一般都是指把一

2022-03-30 10:32:13 664

原创 js事件循环机制

事件循环机制大纲先说基本知识点,宏任务、微任务有哪些说事件循环机制过程,边说边画图出来说async/await执行顺序注意,可以把 chrome 的优化,做法其实是违法了规范的,V8 团队的PR这些自信点说出来,显得你很好学,理解得很详细,很透彻。把node的事件循环也说一下,重复1、2、3点,node中的第3点要说的是node11前后的事件循环变动点。下面就跟着这个大纲走,每个点来说一下吧~浏览器中的事件循环JavaScript代码的执行过程中,除了依靠函数调用栈来搞定函数的执行顺序外

2021-05-11 15:58:25 150

原创 脚本-自动从git上面拉取文件自动打包到服务器上

echo "开始拉取项目:知识库框架"git pull origin devnpm run buildAllecho "项目拉取成功"#判断pm2进程是否存在,存在重启,不存在新建if pm2 ls | grep repository; then pm2 restart repository echo "重新启动项目!"else pm2 start npm --name repository -- run node:prod echo "创建新的项目"fi.

2021-04-28 14:26:32 526

原创 收藏的插件清单

基于vue的插件vxe-table 基于 vue 的 PC 端表格组件基于react的插件原生js|ts的插件css插件

2021-04-25 11:29:27 139

原创 vscode 设置

版本一:{ "editor.rulers": [ 100 ], //代码缩进线 "editor.tabSize": 2, "eslint.alwaysShowStatus": true, "eslint.autoFixOnSave": true, "eslint.packageManager": "yarn", "eslint.validate": [ "javascript", // 用eslint的规则检测j.

2021-04-22 18:23:46 337

转载 nodejs连接mysql——createPool&createConnection区别

createConnection 建立连接&关闭连接语法(1)createConnection方法创建连接对象(正式的说法:使用createConnection方法创建一个表示与mysql数据库服务器之间连接的connection对象)var connection = mysql.createConnection(options);(2)用对象的connect方法建立连接。connection.connect(function(err) { *** });(3)关..

2021-02-02 10:06:40 2545 4

转载 vue插件开发&npm发布

1. 初始化项目vue init webpack-simple projectName运行项目:cd projectNamenpm installnpm run dev2. 写插件在 src 文件夹下面建 lib 文件夹,用于存放插件。lib 文件夹下再建 toast.js 和 toast.vue 两个文件。整个项目目录如下所示:toast.vue 的内容如下:<template> <div class="vue-toast-wraper"

2021-01-08 11:24:17 245

原创 autocomplete=“off“‘不起作用解决方案

为了防止浏览器为用户自动填充账号密码,input标签 html5新增属性autocomplete,但这一属性经常出现不起作用的事情,为了解决这一问题,我找到一些解决方法;去掉了一些比较复杂的方法。下面是两个简单容易实现的方法:方法一:在input框中设置 autocomplete= "new-password";autocomplete官方只有"on","off"俩个值,但是"new-password"亲测可用。网上没有找到对其详细解释,但是发现163邮箱的登录注册是这么用的。这种方法是最简单的。.

2021-01-05 11:05:36 3825 3

原创 mddir——自动生成文件目录结构

自动化生成项目目录结构,文件类型为.mdnpm install mddir -g打开项目所在的文件夹,cmd到控制台,mddir即可生成

2020-12-15 16:19:49 596 1

原创 Fuc-String-escapeRegExp 将字符串中的特殊字符进行转义

escapeRegExp(str){returnstr.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");},

2020-09-30 10:19:19 333

原创 Fuc-String-querysour 搜索结果高亮显示

//搜索结果高亮显示querysour(str,searchStr){letsrtEndIndex=str.indexOf(searchStr)+searchStr.length;letsrtStartIndex=str.indexOf(searchStr);letnewStr=str.substring(0,srtEndIndex)+"</text>"+str.substring...

2020-09-27 17:34:45 149

原创 http请求 超时相关

例如:高级分析客户端设置100s超时,而高级分析服务器端设了8秒超时。这个100秒不仅不起作用,而且会让大量的连接处于time_wait状态。原因:根据TCP协议,主动发起关闭的一方,会进入TIME_WAIT状态(所以服务器端大量进入了time_wait状态),持续2*MSL(MaxSegmentLifetime),缺省为240秒。结论:前后台设置请求超时最好保存一致(结论未验证,此结论未必是对的)...

2020-07-31 12:37:51 496

原创 js常用的正则校验

在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了常用的javaScript正则表达式,其中包括用户名、密码强度、整数、数字、电子邮件地址(Email)、手机号码、身份证号、URL地址、 IPv4地址、 十六进制颜色、 日期、 QQ号码、 微信号、车牌号、中文正则,详细中文名字校验(可以是少数民族.或-)1 用户名正则//用户名正则,4到16位(字母,数字,下划线,减号)var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;//输出 true

2020-07-27 15:33:49 9888

原创 常用的密码校验

情景一:要求:密码长度最少8位 大写字母,小写字母,数字,特殊符号必须四选三首先给出全部四种的匹配表达式:[a-zA-Z0-9\W_]{8,}其中\W 匹配任意不是字母,数字,下划线,汉字的字符。然后使用排除法,排除其中只选一种或只选两种的情况,剩下的就是选了三种的情况了。有:大写+小写,大写+数字,大写+特殊符号,小写+数字,小写+特殊符号,数字+特殊符号。共这6种组合。最后使用环视-正向否定匹配 (?!...)组合起来,就得到最终需要的表达式:^(?![a-zA-Z]+$)(.

2020-07-27 15:26:35 7022

原创 Fuc-String-replaceAll 字符串全部替换

String 又原生的replace方法,但是没有replaceAll。String.prototype.replaceAll = function (s1, s2) { return this.replace(new RegExp(s1, "gm"), s2);}String.prototype.replaceAll = function(search, replacement) { var target = this; return target.replace(ne

2020-06-18 17:04:51 354

原创 Fuc-String-endsWith() 字符串是否是以XXX结尾

String.prototype.endsWith = function (endStr) { // var d = this.length - endStr.length; // return (d >= 0 && this.lastIndexOf(endStr) == d) var reg = new RegExp(endStr + "$"); return reg.test(this);}

2020-06-18 17:01:08 228

原创 Fuc-Date-format() 日期格式化方法

入参类型:Date()类型,默认值:yyyy-MM-ddhh:mm:ssDate.prototype.format = function(fmt="yyyy-MM-dd hh:mm:ss"){ var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), ..

2020-06-18 16:48:25 249

转载 react+umi+antd----umi项目的上手教程(转载)

umi+dva项目快速上手指南react+umi+dva+antd umi项目的上手教程。转载而来,仅用于给人学习。构建项目node环境node版本 >= 8.0.0全局安装uminpm install -g umi建议使用yarn安装// 全局安装yarnnpm install -g yarn// 使用yarn安装umiyarn global add umi构建umi项目mkdir myapp && cd myapp..

2020-06-02 15:59:44 6764

原创 react+antd+umi 项目搭建------connect的使用方法

connect 就是 react-redux 的 connect;它是一个函数,绑定 State 到 View。connect 方法返回的也是一个 React 组件,通常称为容器组件。因为它是原始 UI 组件的容器,即在外面包了一层 State。简单来说connect是用来连接前端的ui界面和和前端model的一个嫁接桥梁 ,通过使用connect将model里面定义的state,和dispatch,和histoey方法等传递到前端供前端使用connect常用的写法:方式一:mapStateTo

2020-06-02 15:39:38 7514 1

原创 vue使用事件绑定携带参数会覆盖函数默认参数怎么办?

第一种,$event;该方法只能解决一个默认参数的情况<a-pagination class="optionsPagination" simple@change="optionsPaginationChange($event,index)" :total="knowledgeItem.knowledgeEntries.total" />该方法应该不是一个好方法,只是自己摸索出来的,$event的主要功能应该不在这儿。第二种方法:<button @click="((el

2020-05-12 14:18:21 1544

转载 react和vue父子组件生命周期的执行顺序

react:父组件将要挂载(componentWillMount) 子组件将要挂载(componentWillMount) 子组件挂载完毕(componentDidMount) 父组件挂载完毕(componentDidMount)import React, { Component } from "react";clas...

2020-04-23 10:25:37 517

空空如也

空空如也

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

TA关注的人

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