自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 web前端面试-- 模块化的几种规范CMD、COMMONJS、AMD、ESM以及UMD模块化解决方案,export *的写法

JavaScript 目前有四种模块规范:CMD、COMMONJS、AMD 和 ESM。CMD 是 JavaScript 最早的模块规范,它使用 require 函数来导入模块。CMD 模块是 JavaScript 最早的模块规范,但它存在一些缺陷,比如模块的导入顺序不受控制,模块的依赖关系无法被管理,等等。COMMONJS 是 JavaScript 模块的另一种,它使用 require 函数来导入模块。COMMONJS 模块在解决CMD。

2023-12-13 18:48:05 1109

原创 vue2 vs vue3 --可访问的全局属性对象(vue2通过vue.property原型链\ vue3通过app.config.globalProperties)

有时候遇到一些面试官,他会问Vue3如何获取当前实例。其实一开始听这句话是有歧义的,因为不知道面试官说的是根实例还是组件的实例。所以我们一般可以反问一下~选项式api,直接用this就可以直接访问了;组合式api,都不用this,直接就可以访问了。本文主要是讲解Vue2,Vue3获取当前根实例的公共属性以及方法的区别。

2023-11-13 16:56:56 388

原创 web前端面试-- window.innerWith、window.outerWidth、clientWidth、offsetWidth、scrollWidth的区别

它是元素内容区域的宽度,可以通过CSS的width属性来设置。例如,如果一个div元素的宽度为200px,内边距为10px,那么它的clientWidth就是200px - 2 * 10px = 180px。

2023-11-06 18:01:57 254

原创 vue2 vs vue3 -- 响应式对象区别,vue2中通过Object.defineproperty、Vue3中ref(Object.defineproperty)reactive(proxy)

vue2 vs vue3 -- 响应式对象区别,vue2中通过Object.defineproperty、Vue3中ref(Object.defineproperty)reactive(proxy)

2023-10-30 22:16:40 95

原创 HTTP请求参数的区别-- Body、Query、Params的区别

Query参数:Query参数是通过URL的查询字符串传递的数据。Params参数:Params参数是通过URL路径的一部分传递的数据。例如,对于URL http://example.com/users/123 ,其中的 123 就是一个Params参数,用于标识用户ID为123的用户。总结起来,Body参数用于传递请求主体中的数据,Query参数用于传递URL查询字符串中的数据,而Params参数用于传递URL路径中的数据。Body参数:Body参数是通过请求的主体部分传递的数据。

2023-10-26 21:59:36 1394

原创 web前端面试-- IEEE754标准JS精度丢失问题0.1+0.2!=0.3、0.2+0.3==0.5 十进制转二进制讲解

IEEE754标准下,浮点数是用二进制进行存储运算的,部分十进制小数转成二进制是一个无限循环的数值,运算的时候会造成精度丢失。在浏览器环境中以IEEE754存储的0.1、0.2、0.3 咱们可以直接在控制台打印出来。好家伙,不按套路出牌,之前也没深究,但是既然重新学习一下,就记录一下,免得又忘记了。面试官是问你0.1+0.2,或者0.2+0.3的问题吗?不是的,要是下次有个作妖的问你,0.x+0.y呢?方法:小数乘2取整,直到没有小数位置,正向排列。方法:整数除2取余,直到整数倒叙排列。web前端面试--

2023-10-19 21:51:06 480

原创 web前端面试-- 手写原生Javascript方法(new、Object.create)

通过Object.create,可以联想到之前讲的JS的。web前端面试-- 手写原生Javascript方法(new、Object.create)

2023-10-18 16:49:39 255

原创 web前端面试-- http的各个版本的区别(HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0)

它引入了持久连接的概念,允许多个请求/响应通过同一个连接进行传输,减少了连接建立的开销。它支持多种HTTP方法(GET、POST等),引入了请求头和响应头的概念,还支持状态码和错误处理。HTTP/1.0是一个非持久连接的协议,每个请求/响应都需要建立一个新的连接。HTTP/3基于QUIC协议,采用了UDP传输,相比于TCP传输,具有更好的性能和可靠性。它解决了HTTP/2中的一些性能问题,并提供了更快的加载速度。HTTP/2采用了二进制协议,引入了头部压缩、多路复用和服务器推送等新特性,提高了性能和效率。

2023-10-18 10:26:01 635

原创 web前端面试-- 在 JavaScript 中 bind , apply 和 call 的区别

在 JavaScript 中, bind , apply 和 call 都是用于改变函数执行上下文的方法。这些方法允许您在 JavaScript 中更灵活地控制函数的执行上下文。

2023-10-12 12:08:48 191

原创 web前端面试-- js深拷贝的一些bug,特殊对象属性(RegExp,Date,Error,Symbol,Function)处理,循环引用weekmap处理

web前端面试-- js深拷贝的一些bug,特殊对象属性(RegExp,Date,Error,Symbol,Function)处理,循环引用weekmap处理。在JavaScript中,深拷贝和浅拷贝是两种不同的对象复制方式。浅拷贝是指将一个对象的引用复制给另一个对象,这意味着两个对象将共享相同的内存地址。当修改其中一个对象时,另一个对象也会受到影响。深拷贝是指创建一个新的对象,并将原始对象的所有属性逐个复制到新对象中。这意味着两个对象是完全独立的,修改其中一个对象不会影响另一个对象。

2023-10-11 10:58:11 1012

原创 web前端面试-- js 如何快速交换2个变量的值

在JavaScript中,您可以使用多种方法快速交换两个变量的值。这些方法都可以快速交换两个变量的值。

2023-10-11 10:21:17 248 2

原创 直播间自动点赞第一章:MouseEvent 实现根据坐标X,Y自动点击浏览器的效果

制作一个自动点赞的浏览器插件,可以根据用户指定一个浏览器区域,进行自动化点击,其中可以设置参数:点击频率、指定区域。指定了一块区域,进行点击,这边是模拟直播间实现自动化点击simulateClick是实现一次点击:

2023-10-07 12:26:17 287

原创 TypeScript- 对于对象键名(包括函数键值)不确定的接口,可以使用字符串索引的形式

有一个需求,通过JSON数据,第一层是对应的页面对象(比如是用户页面),第二层是该页面的API请求名(比如用户的增删改查),第三层是该API的配置信息(比如,method,url…这里主要跟你的封装有关)

2023-09-23 10:51:14 249

原创 小程序从无到有教学教程-- 02.Huawei Cloud Euler系统通过docker-compose搭建jenkins+mysql+nginx+nodejs环境一键配置脚本

专门拿了来讲解,所以目录结构就比较简单了花点时间看文章啊哈~小程序从无到有教学教程-- 02.Huawei Cloud Euler系统通过docker-compose搭建jenkins+mysql+nginx+nodejs环境一键配置脚本

2023-09-18 11:02:38 182

原创 华为云云耀云服务器L实例评测|01.重置华为云服务器Huawei Cloud EulerOS 2.0版本并且设置安全组

小程序从无到有教学教程-- 01.重置华为云服务器Huawei Cloud EulerOS 2.0版本并且设置安全组专门拿了来讲解,所以目录结构就比较简单了。

2023-09-15 19:27:59 471

原创 Penk 带你做项目-- 个人小程序从无到有导航

想要在B站录制教学视频,先来CSDN先写好文章记录下,B站同名,由于没什么人气,所以更新的比较慢~

2023-09-15 19:10:27 101

原创 uniapp 上传静态资源-- 微信小程序跟QQ小程序上传静态资源到阿里的对象存储 OSS

这两天有个需求,要微信小程序跟QQ小程序通过阿里的OSS储存,存放静态资源,遇到了挺多问题,记录一下~~~服务器签名客户端签名调用 crypto.HmacSHA1 出现 sigBytes 微信小程序调用OSS SDK

2023-09-08 18:21:28 319

原创 Sentry 是一个开源的错误监控和日志聚合平台-- 通过docker-compose 安装Sentry

Sentry 是一个开源的错误监控和日志聚合平台,用于帮助开发团队实时监控和调试应用程序中的错误和异常。它可以捕获应用程序中的错误和异常,并提供详细的错误报告,包括错误堆栈跟踪、环境信息、用户信息等。这些报告可以帮助开发团队快速定位和解决问题,提高应用程序的稳定性和可靠性。Sentry 提供了广泛的集成和支持,可以与各种编程语言和框架集成,包括 Python、JavaScript、Java、Ruby、PHP 等。

2023-09-01 12:23:38 1815

原创 TypeScript配置-- 2. 了解ts配置项,根据vite项目了解typescript配置文件,tsconfig.json、tsconfig.node.json、

“compilerOptions”:这是一个对象,用于配置 TypeScript 编译器的选项。它可以设置诸如目标版本、模块系统、输出目录、严格类型检查等编译器相关的选项。“files”:这是一个数组,用于指定要编译的文件列表。如果指定了这个选项,编译器将只编译列出的文件,而不会自动包含其他文件。“include”:这是一个数组,用于指定要包含在编译中的文件或文件夹的匹配模式。可以使用通配符来指定多个文件或文件夹。“exclude”:这是一个数组,用于指定要排除在编译之外的文件或文件夹的匹配模式。也可

2023-08-28 13:26:31 2709

原创 TypeScript配置-- 1. 新手处理TS文件红色波浪线的几种方式

Typescript 规范化了JS的项目开发,但是对一些项目的一些新手来说,确实是不怎么优好,譬如我:将我之前珍藏的封装JS代码,拿进了配置了tsconfig.json的vue3项目,在vscode下,出现了满屏的红色 :(

2023-08-28 12:10:05 1186

原创 TypeScript配置-- 0. 配置Typescript环境 ts 转js,tsc --watch 实时编译

TypeScript-- 配置Typescript环境 ts 转js,tsc --watch 实时编译

2023-08-26 17:18:35 282

原创 web前端面试--递归(斐波那契数列),附带带缓存的优化版本

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。

2023-08-11 09:42:58 586

原创 javascript 7种继承-- class继承(7)

class 不仅仅是简化了之前讲解的6种继承方式,也更加严谨,提供了更多的更像面向对象变成的方法(读取器,静态方法等)。JS一开始的初衷就是为了方便开发者,当初的开发也比较简单就是单纯的页面,随着浏览器不断地发展,现在功能越来越多了,所以,才有7种继承的进化史。这阵子在整理JS的7种继承方式,发现很多文章跟视频,讲解后都不能让自己理解清晰,索性自己记录一下,希望个位发表需要修改的意见,共勉之。调用了类中的静态方法,静态方法一般不是用于对对象的操作,这边的功能是比较2个名字的长短,虽然有点不实用…

2023-08-03 23:19:55 385

原创 javascript 7种继承-- 寄生组合式继承(6)

组合式继承 = 原型链继承 + 构造函数继承。寄生组合式继承 = 寄生功能 + 组合式继承 = 寄生功能 + 原型链继承 + 构造函数继承。这边回顾一下组合式继承有什么缺点,主要是实例化了父类的次数 = 子类实例化次数 + 1 (子类原型指向了父类的实例)。其实就目前电脑的配置,这点也无关紧要,实例化一个父类能造成多大的性能损耗呢。但还是有强迫症换成相处了解决方案,因为父类的上下文已经用构造函数继承了,只要再继承父类的原型链就好了,实现的方案就是将子类的原型指向父类的原型。

2023-07-26 22:31:46 170

原创 javascript 7种继承-- new操作符的原理以及实现

new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。创建一个空的简单 JavaScript 对象(即 {});为步骤 1 新创建的对象添加属性 proto,将该属性链接至构造函数的原型对象;将步骤 1 新创建的对象作为 this 的上下文;如果该函数没有返回对象,则返回 this。new操作符的实现手动写一个new操作符功能的函数new constructor[([arguments])]

2023-07-26 21:32:45 234

原创 javascript 7种继承-- 寄生式继承分析(5)

说的寄生式继承,不得不提到上一篇文章的原型式继承,因为原型式继承无法传参,对父类部分属性重写只能在上下文中,通过 .操作符操作。而寄生式继承就是封装好一个函数,对原型式继承的实例化对象进行再加工,也是通过.操作符,不过环境上下文切换到了函数。这个也就是我们熟悉的设计模式之一工厂模式,既美化了代码,也实现了复用。即原型式继承+工厂模式=寄生式继承工厂模式:定义一个创建对象的方法,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

2023-07-26 11:15:58 123

原创 javascript 7种继承-- 原型式继承分析(4)

道格拉斯·克罗克福德在一篇文章中介绍了一种实现继承的方法,这种方法并没有使用严格意义上的构造函数。它的想法是借助原型可以基于已有的对象创建新对象,同时还不必因此创建自定义类型。原型式继承,返回一个空的构造函数所创建的实例,并该构造函数的prototype指向需要继承的对象,说白了就是直接**浅拷贝**copy一个新的对象给你用,可以参考原型式继承的一句话代码:`let parent2 = Object.create(obj); `。

2023-07-25 21:25:08 157

原创 javascript 7种继承-- JavaScript 中的 [[Prototype]] 与 __proto__ 与 .prototype 为什么 JavaScript 中有这么多类型的原型?

为什么 JavaScript 中有这么多类型的原型?它们都有什么作用?当您开始学习 JavaScript 中的原型时,这似乎非常令人畏惧。很多混乱源于这样一个事实:JavaScript 中有两种不同的原型,它们引用了不同的概念。让我解释。.prototype是所有函数都具有的特殊属性,其中包含对对象的引用。当构造函数用来实例化一个新对象时,ConstructorName.prototype被设置为新对象的原型。

2023-07-25 11:46:50 71

原创 javascript 7种继承-- 组合式继承分析(3)

但是又产生了新问题,就是会多初始化一次,不过也可以从这里看出来,原型链在某些场景还是挺好的,只会触发一次父类,只要设计的时候,不会修改复合数据类型的话,对于一些大型应用还是挺关键的。* 原型链:就是实例对象和原型对象之间的链接,每一个对象都有原型,原型本身又是对象,原型又有原型,以此类推形成一个链式结构,称为原型链。父类的数据以及方法要给子类继承,通过了JS的原型链的原理,将子类的prototype,指向了实例化的父类。// 这里还不能直接打印对象出来,因为是一个指针,总是指向最新的数据...

2023-07-24 15:06:19 87

原创 javascript 7种继承-- 构造函数继承分析(2)

原型链:就是实例对象和原型对象之间的链接,每一个对象都有原型,原型本身又是对象,原型又有原型,以此类推形成一个链式结构,称为原型链。这阵子在整理JS的7种继承方式,发现很多文章跟视频,讲解后都不能让自己理解清晰,索性自己记录一下,希望个位发表需要修改的意见,共勉之。父类的数据以及方法要给子类继承,通过了子类构造函数继承的原理,实例化子类的时候,调用父类构造函数,并且将作用域指向子类实例。* 原型:原型就是一个对象,也叫原型对象,不同的人叫法不一样,很容易搞懵逼初学者,原型===原型对象。

2023-07-24 13:45:21 78

原创 javascript 7种继承-- 原型链继承分析(1)

对于JS继承不熟悉的同学,感觉可以先从class继承开始,了解其结构,因为那个是最简单实现,并且最标准的格式了,大概了解了JS继承逻辑、prototype、__proto__、[[prototype]]、constructor 在实例中的结构再逐步学习对比其他继承,当然如果不去面试的话,直接用class就好了...

2023-07-24 11:22:19 80

原创 sadtalker-- 本地生成数字人

sadtalker,可以根据图片以及语音,生成动态视频,跟现在的数字人直播电商差不多,制作成视频后加个推流到直播间即可。本章节,主要记录从无到有搭建sadtalker环境,期间也出现了多个问题,也做了相应的记录。

2023-07-18 16:21:48 1306 3

原创 手机自动化脚本-- 模拟器模拟真机环境过检测

面具magisk开启root,雷电模拟器上模拟真机环境。以上可以防止第三方APP检测环境问题,但并不能解决APP检测是否系统被ROOT,系统是否有安装其他脚本文件之类的,下篇文件将会讲解。

2023-07-12 11:25:23 4635

原创 nodejs全栈实现自动化互赞平台-- 概览,后期逐渐讲解项目,新媒体短视频前期自动刷数据

新媒体短视频前期自动刷数据,视频没流量,前期又不想花钱,那就只有找身边的朋友点赞了,不过每次发视频都要@一堆人,是个很烦人的事情,所有就有了这个自动化点赞平台,大家发任务,一起做任务,只要有一部备用安卓机即可。

2023-03-18 22:10:10 235 3

原创 docker持久化部署vue前端nodejs后端项目-- 04. 配置服务器JENKINS环境

docker持久化部署vue前端nodejs后端项目-- docker-compose部署nginx+jenkins+mysql+git。做了一个项目,用nodejs写的后端,vue写的PC端以及移动端,数据库用mysql,现在要部署到服务器上。由于怕下次部署又要一堆操作,就弄了个docker,并且以此文章来做笔记以及分享。本章节主要讲解本地开发好,要部署到服务器后,要怎么配置环境。本章节主要讲解本地开发好,要部署到服务器后,要怎么配置环境建议查看docker专栏结构,以便了解流程~

2023-02-18 02:49:42 699

原创 docker持久化部署vue前端nodejs后端项目-- 03. 怎么将docker-compose项目部署到服务器上

docker持久化部署vue前端nodejs后端项目-- docker-compose部署nginx+jenkins+mysql+git。做了一个项目,用nodejs写的后端,vue写的PC端以及移动端,数据库用mysql,现在要部署到服务器上。由于怕下次部署又要一堆操作,就弄了个docker,并且以此文章来做笔记以及分享。本章节主要讲解本地开发好,讲代码上传到git后,要怎么部署到服务器上本章节主要讲解本地开发好,讲代码上传到git后,要怎么部署到服务器上建议查看docker专栏结构,以便了解流程~

2023-02-18 02:48:19 334

原创 docker持久化部署vue前端nodejs后端项目-- 02. 项目对应的docker-compose结构

做了一个项目,用nodejs写的后端,vue写的PC端以及移动端,数据库用mysql,现在要部署到服务器上。由于怕下次部署又要一堆操作,就弄了个docker,并且以此文章来做笔记以及分享。本章节主要来讲述项目的基本结构,下一章拆分详细讲解每个容器的使用细节:)

2023-02-17 23:51:27 533

原创 docker持久化部署vue前端nodejs后端项目-- 01. docker以及docker-compose在window以及linux的安装

docker持久化部署vue前端nodejs后端项目-- 0.1 docker以及docker-compose在window以及linux的安装做了一个项目,用nodejs写的后端,vue写的PC端以及移动端,数据库用mysql,现在要部署到服务器上。由于怕下次部署又要一堆操作,就弄了个docker,并且以此文章来做笔记以及分享。

2023-02-17 12:29:01 1953

原创 Vue3+element-plus+vite 组件的二次封装-- 将生成vitepress 静态资源文档发布到Github pages以及Gitee pages,薅羊毛,免费静态站点

将生成vitepress 静态资源文档发布到Github pages以及Gitee pages,薅羊毛,免费静态站点。vitepress 文档已经完成了,这个章节,将讲述如何将文档发布到github 以及gitee 的pages 服务上。

2022-12-30 14:49:48 705

原创 Git篇 -- 配置多个SSH-KEY 多个github以及gitee,避免冲突

ssh 是一种非对称加密,你在你本地生成一对钥匙,公钥+私钥,将私钥保存在本地,公钥上传到目标服务器上,如github,或者gitee,以下简称**服务端**。只要配置好了,你每次访问服务端,他都会携带私钥去做一些权限限制的操作,比如push代码之类的,服务端就会先验证你的私钥是否有配对的公钥,对的话,就给你操作。ssh跟Git分布式版本控制没什么关系,他只跟github跟gitee这些代码托管平台有关。

2022-12-30 13:28:59 1444

ppInk 是一款 Windows 下的屏幕标注工具,它可以让用户直接在屏幕上进行划线、写字、涂抹、线框等标注

ppInk 是一款 Windows 下的屏幕标注工具,它可以让用户直接在屏幕上进行划线、写字、涂抹、线框等标注,还可以分享标注后的屏幕。 ppInk 有多种打开方式: 点击浮动图标 点击系统托盘中的图标 使用全局快捷键(默认为 Ctrl + Alt + G) 如果在命令行中添加了”-startInking”,则在启动 ppInk 后立即进行。 再运行一次(不启动额外的实例)。 官方git:https://github.com/geovens/gInk

2023-07-23

Momo检测(Momo)环境异常软件

Momo检测(Momo)环境异常软件是一个检测手机环境的软件,是否root、Xposed等,当app更新发现手机被root,APP就会显示检测异常,该软件不是反对root、Xposed,而是用科学的手段告知用户手机目前状态,及时规避风险,需要的朋友赶紧来下载吧。

2023-07-23

autojs开发环境,用于实现自动化脚本开发,版本号:autox-arm64-6.3.8

autojs开发环境,用于实现自动化脚本开发,版本号:autox-arm64-6.3.8。自动化脚本开发环境安装包,可以通过无障碍等实现自动点击划屏等自动化操作。

2023-07-23

雷电模拟器9改真机环境.zip

面具magisk开启root,雷电模拟器上模拟真机环境。该压缩包,包括了模拟器(雷电模拟器9.exe),面具,RE管理器(Root_Explorer-v4.10.3-by_Alphaeva.apk),机型模组(iPhone12机型模块_magisk,LSPosed-v1.8.6-6909-zygisk-release,OPPOR9s机型模块_magisk,OXF-AN00机型模块_magisk,SM-N9760机型模块_magisk,vivoPD1728机型模块_magisk)。 A 安装面具 B 刷入机型压缩包,重启生效 C 机型更改app 可以制作机型压缩包,可以导出云机型压缩包

2023-07-12

空空如也

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

TA关注的人

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