自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue框架简单入门:

self 其他元素的事件触发时 事件链经过它,无论是捕获还是冒泡阶段都不会触发它的事件,只有它自己是精准对象才会触发事件, 虽然它自己不会被别人影响,但是它自己的事件触发的时候还是会生成事件链经过其他元素,并不阻止继续冒泡到其他元素。v-cloak==>加上这个属性的标签相当于在构建虚拟节点的时候就会有这个属性,等data的数据生成的时候,这个标签会自动去掉这个属性,可以利用这个特性来在css中把这个元素在加载初期写样式(隐藏)//指令后面跟事件类型,值就是methds中的方法,可以加小括号也可以不加。

2023-06-05 18:57:37 71

原创 egg框架:

主要作用:用户上传的头像或者视频,放在public文件夹中,也就是说public文件夹放用户上传的资源。绑定在新建的控制器上,需要在controller文件夹下新建一个控制器的Js文件,变量名和路由对应。C:Controller 控制器,主要进行业务逻辑处理,比如权限控制、数据接收、数据响应等。静态资源包括:HTML、CSS、JS、文件、图片、音频、视频、字体库。路由:当用户访问不同路径时,计算机需要响应不同的内容,该过程称为路由。M:Model模型,主要进行数据操作,比如数据库、验证码、短信验证等。

2023-05-24 19:00:37 178

原创 用户登录实例:

app/router.js创建新的路由(router.post("/login", controller.user.login)) => app/controller创建新路由对应的js文件(user.js)两者要实现变量名的一一对应关系。如果user.js中需要使用到数据库,那就需要在Service层来操作数据库。当然,在使用之前需要配置数据库。登录成功后,将数据库中查到的用户相关信息(非敏感信息)存储起来,响应给代理服务器。b. 配置路径:config/config.default.js。

2023-05-24 18:54:21 97

原创 dos常见操作及nodejs:

DOS:我们使用接触最频繁的就是DOS。DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软件,,是存储在操作系统中的命令集,有了DOS,我们就可以更容易理解怎么给机器下命令,不必去深入了解机器的硬件结构,也不必去死记硬背那些枯燥2进制数字的机器命令,只需通过一些接近于英语的DOS命令,我们就可以轻松地完成绝大多数的日常操作。

2023-05-08 19:37:18 78

原创 盒子模型:

1.box1.getBoundingClientRect()获取到的偏移量相对于窗口来的,不会加上滚动距离offsetTop和offsetLeft获取到的偏移量是相对于页面内容来的。2.如果对应标签的某个祖先有定位,那么offsetTop和offsetLeft获取到的偏移量是相对于有定位属性的祖先来的。clientX、clientY:获取到的是鼠标点击的位置(相对于窗口来的)pageX\pageY:获取到的是鼠标点击的位置(相对于整个页面内容来的)el: 事件源(标签)事件委托的原理就是利用了事件冒泡。

2023-04-27 03:45:03 26

原创 标签的获取

/ box.append(span,span2," 通过append添加");console.log("直接对标签属性进行操作============");box1.setAttribute("newattr","添加的属性");// 添加一个属性: 标签.setAttribute(属性名,属性值)// box1.innerText = "<h2>标题2</h2>";box1.innerHTML = "<h2>标题2</h2>";// 标签.属性 = "属性值";// 修改:标签.属性 = "属性值";

2023-04-25 23:37:16 102

原创 es6新增:promise

这里表示异步执行完毕,让promise对象产生了结果 结果就是'这就是pro1这个promise的结果'字符串,那这个字符串怎么被外面捕获?4. 所谓的异步的解决方案就是: 我们可以在new Promise的回调函数定义任意的异步操作, 状态最终变成成功fullfiled 还是变为失败的rejected状态 都是我们自己决定的。特性: 状态只能从pending--->fullfiled 或者 从pending--->rejected, 如果这个promise对象的状态已经改变就没有办法再变回去了。

2023-04-14 17:36:24 125

原创 同步与异步

/i的值从0-5变化的时候 setTimeout函数一共调用6次 但是每一次里面的函数没有执行过, 那要等到什么时候才调用呢,等到for循环都已经结束了,i=6 那么这个时候 6次setTimeout里面的函数就开始触发了。概述: 同步和异步, 同步表示阻塞, 异步表示非阻塞。非阻塞: 边做什么 边做其他的事情。阻塞: 按照代码先后顺序依次执行。(1)最简单的办法:把var换成let。因为let具有块级作用域。(3)与(2)方式一样。

2023-04-14 16:49:43 29

原创 class 类

4.使用new关键字创建一个对象的时候new一次就会调用一次constructor函数,constructor里面的语法默认使用的是严格模式,所以不能写count=1;2.手动在类里面去写一个构造函数,每一个类里面必须要存在一个constructor构造函数,如果不写,类在底层会给你添加一个空的构造函数constructor(){}保证类的正确运行。4.子类继承一个父类,将会拥有父类所有的属性和方法(实例,类原型对象,静态)3.类里面的cnstructor里面的this指向新的实例对象。

2023-04-14 15:11:21 32

原创 数组去重的几种方式:

/ 1对应下标为4 2的下标为5。// [1, 2, 3, 4, 2, 3] 遍历第一次 // 2的下标为4。// [1, 2, 3, 4, 1, 3] 遍历第二次。(2)和(1)方式一样。(3)用两个for循环。

2023-04-13 19:44:09 25

原创 Es6语法:

类似于对象 是键值对组合,普通的js对象键名只能用字符串(symbol),map数据结构可以用任意数据作为键名。1. set接口在创建的时候可以传入具有interable接口的数据 作为参数 来初始化set里面的数据。4. 使用symbol值作为对象的属性名,该属性名一定是独一无二的,不会和其他属性产生冲突/重名的情况。this是谁,看离他最近的嵌套级别的function这个单词 对应的函数是谁调用的 this就是谁。3. 函数的形参在没有对应的实参的时候 该形参值为undefined。

2023-04-13 19:19:29 35

原创 元素隐藏:

2. display:none隐藏不会再继续占据元素原本空间,visibility:hidden会继续占据原本空间。3. display:none不具有可继承性,visibility:hidden具有可继承性。1. visibility:hidden和display:none隐藏会将后代隐藏。CSS3 属性,将一个元素的模糊度设置为 0,从而隐藏。将一个元素设置为缩放无限小,元素将不可见,元素原来所在的位置将被保留;元素会变得不可见,并且不会再占用文档的空间;只是简单的隐藏元素,但占用的空间任然存在;

2023-04-11 19:26:35 36

原创 元素水平垂直居中与计算

(好用)(弹性盒模型)(2) position: absolute;外边距方法: 父盒子高宽一半减子盒子高宽一半减边框。(4):平移: transform: translate。内边距方法:父盒子高宽一半减子盒子高宽一半。

2023-04-11 19:05:03 29

原创 包装对象,字符串方法,数组方法

开始查询的位置,默认0) : 查找字符串第一次出现的位置,如果有,返回第一次出现的位置;(3) some():对数组中的每一项运行给定函数,如果该函数对任一一项返回true,则返回true(默认返回false)理解:过滤器,传入一个函数作为参数,该函数主要用来判断想要过滤的条件,条件为真,则将该元素放入新数组,为假 不放入。arr.slice(2,5)(开始截取的下标,结束截取的下标),[),返回值是截取的元素。arr.indexOf():查找数组中元素,查到了就返回元素的下标,没有查到就返回-1。

2023-04-10 11:38:07 51

原创 基础语句:

do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。try-catch-finally是JavaScript的异常处理机制。用于跳过循环中的一个迭代,继续执行下一个迭代(如果有的话)。立即停止正在执行的程序,跳转至就近的逻辑异常处理程序。while 循环会在指定条件为真时循环执行代码块。do-while语句。

2023-04-08 10:54:53 49

原创 call;apply;bind

所有函数都有一个call;bind函数:调用的时候,改变这个函数内部的this。bind:只能用在函数的定义式写法中,本身不能运行函数。call/apply改变了函数的this上下文后马上。所有函数都有一个Lenght属性:形参个数。所有函数都有一个name属性:函数的名字。bind则是返回改变了上下文后的函数,的拷贝,并拥有指定的。

2023-04-06 16:36:30 29

原创 函数作用域

即:函数运行时 执行的顺序 (1)形参和局部变量先声明 ( 2).把实参传入然后赋值给形参变量 (3).函数提升 (4).运行代码。局部变量:函数内部的变量, 函数内部变量只能函数内部访问(var申明的变量)注意: 没有var声明的变量,会在执行到这一行的时候,提升到前一个作用域,前一个作用域没有,则变量为全局变量。5.提升function函数,值为函数体,提升到当前作用域的最前面。7.函数体内的变量,函数在函数执行完,AO对象立即被销毁。2.函数里面的变量/函数: 只能在函数里面访问,外部无法访问。

2023-04-05 12:55:08 51

原创 讲一讲闭包

如果一个函数内部的变量 外部想访问,又不能直接访问: 这个函数可以返回一个内部的函数 然后这个内部的函数来操作这个函数内部的变量。由于: 函数内部可以访问函数外部变量 但是不能访问内部变量: 保护数据。闭包就是 具有作用域的代码块,能访问外层作用域变量值的一种设计. 因次所有函数都是闭包.利用了函数调用栈的独立作用域,来实现临时: 保存数据。这个设计不合理 因为外部直接修改了函数内部的数据。外部可以直接修改输出值,这种设计不满足实际情况。3.防止变量污染 生成闭包块。

2023-04-04 09:02:46 50 1

原创 js语句(if/for)

/ if(A){代码块} A是一个表达式 如果A表达式布尔判定的结果为true就执行代码块 否则就不执行代码块。表达式 a 10 "hello" obj.age arr[1] a+b a>=2 a&&b fn()3.如果是true 运行代码块,接着运行C表达式,然后重复234步骤。1.如果if语句的大括号中只有一个语句 可以省略掉大括号;3.这个语法就是1这个句法的一种改变后的写法,并非标准语法。//B这个变化的变量 的结束条件。//A往往是这个变量的初始值。A,B,C都是表达式。

2023-04-03 20:25:09 103 1

原创 对象与函数

5.函数的返回值 函数在没有返回值return;如果函数返回值是一个基本数据,new得到的对象就是那个构造函数中的this对象。2.新增(对象.属性名 没有属性新增) / 修改对象的属性(对象.属性名 有属性就是修改)如果函数返回值是一个引用数据,new得到的对象就是这个返回值。this:它代表了代码运行的时候,这个单词对应的环境 是哪个对象运行的。js中的对象:复合数据,把基本数据设计为一个整体的数据容器。函数访问到它内部的变量 这种操作叫函数的正常操作。函数访问到它外面的变量 这种操作叫函数的副作用。

2023-04-03 19:35:30 46 1

原创 JS--逻辑操作符

在对象转换为原始值之后,如果两个操作数都是字符串,则按照字母表的顺序对两个字符串进行比较,在对象转换为原始值之后,如果至少有一个操作数不是字符串,则两个操作数都转换成数字进行比较。var a=A&&B A,B是一个表达式,先把A表达式的值为布尔值,如果为真,则变量a就为B表达式,如果为假,则B表达式就不运行了,变量a的值就为A表达式。var a=A&&B A,B是一个表达式,先把A表达式的值为布尔值,如果为假,则变量a就为B表达式,如果为真,则B表达式就不运行了,变量a的值就为A表达式。

2023-03-31 18:43:33 47

空空如也

空空如也

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

TA关注的人

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