自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js正则表达式

2>g 执行全局匹配(查找所有匹配而不是找到第一个停止){n,m} 匹配n次~m次(闭合区间).[a-z]查询任何从a到z的字符。.[A-Z]查询任何从A到Z的字符。.[0-9]查询任何从0到9的字符。\s 匹配空白字符(空格换行等)+ 匹配前边的子表达式1次或多次。* 匹配前边的子表达式0或多次。匹配前边的子表达式0或1次。\w 匹配数字、字母、下划线。i 执行对大小写不敏感的匹配。{n} 匹配确定的n次。{n,} 至少匹配n次。

2022-11-05 13:41:56 1483

原创 js-ajax

发送完成,我们通过onreadystatechange检查服务器响应的状态,当http.readyState为4并且http。status为200的时候说明数据请求成功。通过Ajax向服务器请求数据,在不刷新整个页面的情况下,更新页面的内容。1.创建XMLHttpRequest对象(用来和服务器进行数据交换)但是这ie6以上的用户会有浏览器的问题,我们通过以下方式进行创建。2.向服务器发送请求(open和send)readyState的值代表的含义。二、Ajax的创建(三步走)1-已经与服务器建立连接。

2022-11-05 13:27:43 287

原创 jquery--遍历

children 方法和 find 方法都是用来查找元素的子元素的,区别是 children 只能获取元素的儿子节点,而 find 方法可以获取元素的所有符合条件的后代节点。它的参数有两种,当为选择器时,我们会通过选择器来过滤不符合条件的元素;在 jQuery 中使用 hasClass 方法可以用来判断指定元素是否包含该类名的元素。在 jQuery 中可以使用 is 方法来判断指定元素中是否有符合条件的存在。方法是用来查找指定元素的所有祖先元素的。方法是用来查找指定元素的父元素的。3.所有兄弟元素查找。

2022-11-04 12:05:29 1264

原创 jquery---动画

show() 只适用于通过 jQuery 方法和 CSS 中 display 属性隐藏的元素,不适用于通过 visibility 隐藏的元素。执行完前边的再执行后边的,具有顺序,在animate中写多个属性的时候是同时执行的,所以需要区别。回调函数是在animate执行之后再执行的。1.fadeIn淡入,让不透明度从0到1。四、队列动画(执行多个动画效果)是动画结束后所执行的函数。三、自定义动画animate。speed是动画延迟的时间。七、延迟动画deplay。六、停止动画stop。

2022-11-04 11:38:43 847

原创 jquery之Dom操作

().toggleClass("类名");语法格式:$().each(function(index,element){});jQuery对象.attr("属性名", "属性值");$("div").empty()清空div下的内容和元素。$("div").remove()删除所有div元素。$().css("属性名", "属性值");$().removeClass("类名");$().addClass("类名");$().css("属性名");$().html("内容");$().text("内容");

2022-11-04 11:03:36 1044

原创 jquery 事件和事件对象

例子1.$("div").on("changecolor",function(){${this}.css("background-color","red")})例如:$("div").onmousedown(function(){$(this).css("background-color","pink")})例子2.$("div").click(function(){$("div").trigger("changecolor");例如$("div").scroll(()=>{

2022-11-04 10:07:27 676

原创 jquery 选择器深入

8.A[arr]~="value"]对arr的值为value或者包含value的A进行操作。9.A[arr]|="value"]对arr的值为value和以value开头的进行操作。5.A[arr]^="value"]对arr的值以value开头的A进行操作。6.A[arr]$="value"]对arr的值以value结尾的A进行操作。7.A[arr]*="value"]对arr的值v包含value的A进行操作。2.A[arr="value"] 对arr的值为value的A进行操作。

2022-11-04 08:41:10 1146

原创 jquery链接导入和基本选择器的使用

4.当css设置多个的时候代码有点冗余,所以我们可以简写成一个对象的形式,jQ对象.css({"属性一":"数值1","属性2":"数值2"...})当我们$("div.div1")的时候代表选中class是div1的div标签,当然id选择器也可以这么用。2.$("div").css("color","blue")用来设置指定标签的样式的方法。3.总结:jQ的对象.css("属性","属性值")来设置对象的样式。群组选择器($("选择器1, 选择器2,...");通配符选择器($("*"))

2022-11-03 21:24:19 643

原创 fastify-swagger 7.4.1

2.接下来在plugin目录下,创建 swagger模块,代码如下(需要在路由插件注册好之前注册,可以在插件plugin文件夹中定义。通过上述命令安装指定版本的swagger插件,默认最新,值得注意的是swagger插件7.4.1版本和以上版本用法区别很大。1.在我们注册的路由user中指定标题、描述、补充描述(在get方法中的schema中的属性tag、、summar、descriptiony)这样就可以通过查询参数获取数据了(try it out),但是此时并不会显示出数据(还需要响应)

2022-11-03 11:39:17 660

原创 nodejs--fastify连接数据库获取数据

2.我们想要连接数据库,需要先注册好刚刚安装好的插件,可以再plugins插件中去定义,因为渲染的时候先去渲染插件,我们就可以获取到了。通过命令 npm i @fastify/mysql进行安装。3.创建网络请求,以及传输 SQL代码并定义返回数据。1.安装fastify-mysql插件。4.查看获取数据是否与数据库一致。一、fastify连接数据库。

2022-10-21 16:51:15 767

原创 数据库的操作

2. 通常使用数据时会有一个或多个条件的,而且多个条件会存在一定的关系的,比如逻辑与/或。但是值得注意的是我们主键设置的id,他是自增的,但是我们清空以后,id不会被重置,再进行创建数据的时候,id会继续自增。这些情况在查询的时候属于模糊查询,在模糊查询中有两个重要的通配符%(匹配任何数目的字符),_(匹配一个字符)R:Read,读取表中数据、单表查询,也可以多表联合查询,查询的时候还可以分组或排序,也可以进行聚合语句。注意的是,fields可以是无序的,但是后边的fieldValues必须与之对应。

2022-10-21 16:20:35 424

原创 nodejs-fastify 数据库创建

3).选择“校对”规则:用于指定排序规则,一般选择general,你的选择会直接影响查询性能,一般为了提高性能,一边为了精准度,如果为了精准度可以选择unicode。我们知道,数据库在存储数据以表为基本单位,数据在实际应用中是有类目的,所以在同一数据存放在一张表中,也就是说在一个数据库中可能会存储多个表,存储项目中所有的数据。1.可以连接本地或者别人的数据库,在Host输入别人的ip地址去访问别人的数据库,如果别人·数据库端口号不是3306,那么在port选项中填入其他端口号。

2022-10-21 14:39:50 732

原创 nodejs--fastify-url构建以及路由前缀和新增用户

中查看)中的query属性进行获取当前query进行匹配(但是这个query的类型是对象,在其中有我们定义的查询参数(本实例为uid),但是uid类型是string,与我们users数据中的id进行匹配需要转换为数字),注意如果不匹配的时候,返回状态错误码1,并通过msg进行反馈获取失败。但是当我们匹配下边这个的时候,出现的结果是下边的,说明我们动态绑定的后边写什么都不会出现404,会执行我们定义路由时的方法。目前,我们可以通过通配符进行匹配我们没有定义的页面和方法获取到404 NOT FOUND。

2022-10-19 16:37:34 608

原创 nodejs---fastify-路由

在应用程序中定义一个路由用来和用户发送的请求的地址和方法进行匹配,如果两者都相等,匹配成功,如果匹配成功,使用路由对应的处理函数给予本次请求响应。如果没有匹配成功,说明程序中没有定义的路由,因此给予404的响应。目前支持 'DELETE'、'GET'、'HEAD'、'PATCH'、'POST'、'PUT' 以及 'OPTIONS'。另外,浏览器只支持GET请求的,所以我们需要用软件Apipost匹配其他请求方式的数据。reply响应对象:包含给与客户端请求响应的相关方法。:支持的 HTTP 请求方法。

2022-10-19 13:58:41 611

原创 node.js--web开发框架fastify介绍

1.创建一个index.js文件,并在package.json中定义其为主文件,并且把index.js文件启动方法写在scripts中。3.执行代码(在cmd对应文件夹中输入npm run dev(dev就是在package.json中scripts中配置的东西))根据上边的指引就创建好一个fastify新项目了,但是里边并没有依赖的包我们需要通过npm install进行安装依赖。值得注意的是这个listen方法中的port是简写(port:port);选择一个入口文件(例子使用的index.js文件)

2022-10-19 12:02:45 1669

原创 html 本地存储

cookie设置本地存储,大小只有4k,默认有效期是只有当前会话窗口,可以通过expires方法进行设置过期时间。1.localStoryage通过.name名字=值进行设置(或者通过setItem进行设置,通过getItem进行获取)(不删除的话一直有效)2.sessionStoryage和localStoryage用法差不多(不同的是只有会话的时候有效)2.设置一个cookie的有效期(通过expires和字符串拼接的方式进行设置)4.实现通过cookie的名字查找cookie的值的函数。

2022-10-13 18:02:07 460

原创 html5--json

3.那么我们想把引用数据类型深拷贝怎么办(通过我们刚才说的方法先把引用数据类型转换基本数据类型然后再赋值)例如下边代码,更改person2.age以后person的数据不改变。前后端传参会有差异,比如这个person上边是在前端的参数,下边的_person是在后端的参数,会有区别。1、浅拷贝:将一个变量赋值给另一个变量,修改其中的一个变量,原有的变量也会随着改变(引用数据类型)2.深拷贝 将一个变量赋值给另外一个变量,更改新变量,原变量不会改变(基本数据类型)栈(相当于共享文档 更改的时候会更改原有的)

2022-10-13 15:19:16 744

原创 html5--自定义属性

4.在标签上通过data-设置的方法和dateset添加的属性获取属性的方式一样,但是要有一点需要注意。当我们设置属性名的时候如果出现多个字符串即像下边data-set-input这种情况的话,在调用属性的时候需要用驼峰命名。1.直接添加,通过querySelector获取到html元素之后,直接.属性进行初始化就可以为元素添加自定义属性了。2.setAttribute('属性名','属性值'),添加自定义属性并初始化。3.通过dateset方法添加的属性,通过dateser.属性名获取。

2022-10-13 13:25:04 4466

原创 html5--音频控制选择器以及选择器

class获取的用.+class名,正常标签名获取的可以直接用标签名。(当有多个元素的时候只会返回匹配的第一个元素)1.audio 音频(src是音频文件位置 controls属性添加上才会显示 autoplay 自动播放(只有mac的浏览器好使) loop 循环播放)如果有多个元素绑定,需要用qurrySelectorAll()(返回一个类数组,获取所有满足条件的元素)1.常规获取html中的标签(class tap id等)3.小示例,获取id为ul2的ul下边的所有li。二、选择器(js代码中)

2022-10-12 17:46:14 304

原创 html5--新增的标签及input类型

1.email:直接用的时候和输入框差不多,但是当我们在form中使用的时候,在提交的时候,如果在email框中的个是不是一个邮箱地址的话会提示错误(可以用来校验,在后边可以通过正则表达式进行校验)8.number 数字框(具有加一减一 可以指定最大最小值 以及增加及减少的数值(step) 当输入的不是有效值的时候会先变为有效值)1.header 定义section或page的页眉(页面顶部,文档的头部区域)(项目中最顶部的地方)4.强大的多媒体支持(比如和)

2022-10-12 15:23:20 1429

原创 html的基本使用

a标签中的内容可以被点击进行跳转到指定页面,href中填入的是点击后跳转的页面,其中可以用#代替本页面,额外参数target="_blank",写入后再次点击a标签的内容不会从当前页面进行跳转,而是打开一个新的窗口并跳转到指定页面。3.单选框(type是radio,值得注意的是,具有相同name属性的才具有单选框的特性,也就是选一个)12.table tr td th元素,其中table是表格,th是表头元素,td是列,tr是行。示例:(第一行用的是绝对路径,第二行是相对路径,第三行第四行是错误的路径)

2022-10-11 17:53:19 1338

原创 Angular--搭建环境

1.第一种,像官网的实例,可以不通过本地环境进行搭建,通过。(1)第一步我们先检查一下是否安装好npm和node.js。2.第二种,通过node.js和npm包管理器进行安装,(4)在项目的集成终端中通过npm start运行项目。通过在命令行输入node -v和npm -v进行检查。(2)通过npm命令进行安装angular-cli。然后点开下边的网页连接就可以打开我们的项目了。(3)创建项目指令,然后对默认值进行选择。一、Angular的开发。

2022-10-11 14:31:18 1345

原创 node.js---内置模块

但是我们运行的时候会报错,我们使用import时,必须要在readme.json中配置type:"module"进行使用import,否则默认值位common,只能使用上节的导入方式。我们执行操作(文件创建等操作的时候,有的时候会出现错误,所以我们把操作放入try...catch中来捕获异常,当然成功执行的话就不会出现异常了)还有很多文件的操作(创建文件夹、删除文件、拷贝文件等等)在node.js的官网查找api。其中writeFile的用法:第一个参数是生成文件的路径,第二个参数是生成文件的内容。

2022-10-10 13:41:16 717

原创 node.js的相关安装以及简单实用

2. node.js并不是新的语言,类似于浏览器,是提供js代码执行的环境,因此,在开发node.js项目的时候,依旧使用js这门编程语言(和浏览器中编写的一样);也就是说node.js是js的宿主环境,学习的重点关注环境提供给js在浏览器中的不同的能力。3.浏览器提供的对象是宿主对象(全局对象)(例如window对象),js语言中提供的原生对象就是内置对象,当js在内置对象找不到的时候会去全局去找。(1)一个文件就是一个规范,比如"password.js"(一个js文件),文件的名字就是的模块名字。

2022-10-09 16:25:37 452

原创 Sass快速入门2

4.带有默认参数值的混合器(给$boder-color赋默认值)3.给混合器传入参数。如下边代码是定义两个参数的混合器。2、使用@include进行调用混合器。1、 定义使用@mixin定义混合器。二、继承(比混合器性能好)

2022-10-08 17:42:15 81

原创 java数组中的方法

1.5以后java新增foreach循环和可变参数,可以通过foreach方法进行遍历,通过这种方法遍历更加方便,值得注意的是寻元素的类型需要与遍历集合中的类型保持一致。3.可变参数:在形参前边加上三个点就是可变参数(就会变为引用数据类型,自动转换为数组)当我们使用数组[索引]的方式,当索引大于或者等于数组长度的时候就会发生数组越界异常。异常会阻止程序执行,除非进行异常处理,异常是单独的线程,区别于主线程的。当我们调用参数的时候传入的参数是变化的不固定的,这是需要我们传入多个数值。二、数组中要注意的问题。

2022-10-08 16:28:49 545

原创 sass快速入门1

5.群组选择器的嵌套(就是一个类下边多个类具有相同的属性的时候 如下边代码的p,h1,h2,h3,h4)甚至有的时候可以进行混合使用,这里就在设置boder样式的同时设置了boder-left和right。4.父选择器标识符&(当在嵌套规则中需要获取父选择器的时候(比如添加伪类选择器或伪元素的时候))1.常见的css预处理器:sass(ruby环境)、less(node.js)、stylus。下边的代码中,&所代表的就是他的父类,也就是p。2.使用的时候需要用var来取到定义的变量。

2022-10-08 16:06:05 392

原创 java 方法函数与数组

4.方法的返回值 通过return进行返回值结束方法,一个方法中可能具有多个return但是只执行其中的一个,并不会全部执行。5. 方法的重载:就是相同名称的方法函数但是不一样的形参,当调用的时候通过匹配实参的类型或者是数量不同进行匹配对应的参数。在{}中可以return回数据,但是要注意返回值类型,与定义的时候返回值类型保持一致,如果是void则不能有返回值。返回值类型:void-空返回值类型、八种基本数据类型、String(引用数据类型的一种)、引用数据类型。2.方法的调用:函数名称+();

2022-10-06 20:49:48 745

原创 java 分支语句和循环语句

2.if(){}else if(){}...else{}...多个分支语句,else可以不写;一般判断的表达式与(&,|,^,||,^,&&,!if中的表达式为真执行if后边的语句,否则执行else中的语句。//continue 结束当前循环,如果条件满足继续进行循环。四、循环语句(while,do while, for)//break作为循环的出口,或者条件不满足自动退出。//先执行一边循环操作,如果还满足条件,进行循环。//符合条件,循环继续执行。1.while(条件表达式){}while(循环条件)

2022-10-06 18:50:33 864 1

原创 java--变量和修饰符(2)

如果这个数是负数,或者大到类型的边界,可能会出现错误(例如符号位的改变,需要注意)6.十六进制转换为二进制只需要把每个十六进制的数字替换为对应的四个二进制位即可。Scanner(引用数据类型)对象的作用是可以接收系统输入流的,接受键盘的输入;3.八进制转换二进制:只需要把每个八进制的数字替换为相对应的三个二进制位即可。(在上边代码会帮我们用import导入类的路径,帮我们查询这个类)2.java中的八进制要以0开头,如0123(用的比较少)(2)声明变量的同时给变量赋值:类型 变量名=值。

2022-10-06 14:28:13 420

原创 java -变量和标识符

3.字节(Byte)是计算机文件大小的基本单位,1个字节等于八个位,Bit是“位”或”比特“,是计算机运算的基础,二进制中的一位,是二进制最小的信息单位,二进制可以用来表示一个简单的正负判断;当我们需要在主函数(具有static关键字定义的),如果想用成员变量a的话,需要把a变成静态的才可以yong,像下边这种写法,下边的函数可以用静态的也可以不用静态的。1)按照所属的数据类型划分:基本数据类型(八大基本数据类型)、引用数据类型(第三方对象、jdk中现有的对象、自定义的对象、string等)

2022-10-05 20:57:51 619

原创 vue3中的pinia

值得注意的是当我们取到用变量接取函数创建的小型仓库的时候,不能用解构赋值的方式接收其中的state和getting,会失去响应式,但是可以解构action中的函数,如果非要解构,就需要把取到的变量用storeToRefs();比较以下发现其实只是写法不一样,相当于还是里边有三部分:state(存放数据),getters(对数据进行操作后的数值),actions(修改数据的方法)1.文件结构(搭建vue项目的时候启用pinia默认在stores文件夹下创建的文件,我们可以在这里创建我们的文件,)

2022-09-30 16:58:07 1079

原创 vue3的依赖注入

1.值得注意的是我们通过provide+inject可以很方便的使用祖先组建的数据,但是调用的时候必须是定义provide函数数据的组件的后代组件可以用inject函数调用其中的数据。2.provide中数据的值的类型如果是ref,那么在inject中的类型仍然为ref为响应式的,如果数据一开始就不是响应式的,那么在调用的时候也不会是响应式的。二、inject函数(在想用数据的组件中使用inject函数接收调用)inject中的参数就是我们在provide中的注入名。

2022-09-30 14:51:52 658

原创 包含tsx的react项目创建

里边的和我们不用ts模板中的区别主要是App以及其他的js文件都换成了ts和tsx,ts是一种强数据类型的语言,不会像使用js一样变量满天飞hh。重点来了,如果你输入这行代码不能成功说明你没有安装cra!全局安装:npm install -g create-react-app,然后就可以创建支持ts的react项目了。学习tsx相关的react项目,创建的时候就报错,头大了很久,以下是我吸取的教训,供小伙伴参考。1.创建支持ts的react项目的代码。在指定文件夹下的集成终端中输入代码。

2022-09-29 13:50:59 1352

原创 Ts-2泛型<>

写代码的时候不确定是什么类型,但是运行的时候就确定是什么类型了。抽象类可以有普通类的属性方法,也可以有抽象方法。二、抽象类方法和属性都是可以被继承的。继承类必须实现抽象类的抽象方法和属性。//泛型的使用必须先定义后使用。要求这个方法返回他传入的参数。//由抽象属性不能有值。三、react开发ts。定义一个泛型T

2022-09-25 13:56:34 120

原创 微信小程序事件和页面跳转

在前边加bind或catch就可以绑定事件处理函数了,他们不同的是,catch没有事件冒泡,bind有事件冒泡,还有capture-bind与bind不同的是他是事件捕获(从外到内)当我们实现多页面的跳转的时候可以设置多个处理函数,也可以通过一个处理函数绑定不同的url进行实现多页面的跳转。在js文件中data中定义url1和url2,然后接受到dataset中的参数赋值给url属性进行跳转。一个小程序拥有多个页面,我们通过wx.navigateTo进入一个新的页面。fail是我们失败的时候执行的函数。

2022-09-24 11:09:58 4403

原创 Vue3插槽和事件

2>子组件:其中需要调用defineEmits方法注册事件,通过emit变量接受submit参数,然后点击按钮的时候让其执行,emit("submit");父组件中:调用子组件的时候传入@submit="处理函数",当submit的时候触发,我们也可以自己定义这个submit,也可以换为别的变量,然后我们绑定事件处理函数。注意的是,其中的emit函数有两个参数,第一个参数事件名称,第二个参数是给事件处理函数出入参数。点击事件点击的时候就可以触发。可以通过传入的参数绑定样式。

2022-09-23 16:19:52 2596

原创 Ts-安装以及数据类型和简单操作方法

unknown有类型检查,any不会去检查数据类型,unknown可以和any进行数据交互,和number不能进行数据交互,实质上是检查类型的any类型。我们通过输入tsc ts文件所在位置 将ts文件转换为js文件并重新为新文件(新文件名字和ts一样,位置和ts文件为兄弟关系 原来的ts文件不会改变)2.let 变量:any(给变量指定类型)也可以直接赋值 关闭了ts检查的类型。注意的是void是表示当前返回值为无返回类型,不是没有返回类型。num的类型是对象(包含一个name属性的对象)

2022-09-23 11:14:02 776

原创 Vue3父组件与子组件的参数传递

子组件通过defineProps方法进行接收,绑定的方式有两种(1.直接用接受的属性绑定,2.用定义的props下的对应属性进行绑定)(用1.绑定的type,用2.绑定的placeholder)2.父组件:在vue3中调用子组件只需要利用import导入就可以直接使用,与vue2不同,vue2中需要在父组件对应路由下添加子路由;然后在组见中定义props接收传入参数,需要在接收参数的地方进行v-bind双向绑定。vue2的方法仍然还支持,首先在父组件中调用子路由的时候传入参数。一、定义父路由和子路由。

2022-09-22 19:20:03 1939

原创 Vue3v-model和侦听器以及特殊情况取到dom的方法

1.通过ref属性,需要我们给dom元素ref属性绑定值,绑定的值是我们在下边定义的响应式变量,并且赋值为null,不能用reactive进行响应式数据绑定,因为reactive是赋值一个对象,null不是对象;2.通过组件实例来获取dom,前提还是给dom元素赋值ref属性,不同的是,这一种方法是通过取组件实例中的refs属性来取到dom元素,如下边代码。1.监听某个属性值的变化进行操作(name为第一个参数是我需要监听的属性,后边是一个箭头函数,其中第一个参数是新值,第二个参数是旧值)

2022-09-22 16:08:21 889

空空如也

空空如也

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

TA关注的人

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