自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简单请求和预检请求

以上报文中就可以看到,使用了OPTIONS请求,浏览器根据上面的使用的请求参数来决定是否需要发送,这样服务器就可以回应是否可以接受用实际的请求参数来发送请求。Access-Control-Request-Headers告知服务器,实际请求将携带两个自定义请求标头字段:X-PINGOTHER 与 Content-Type。服务器据此决定,该实际请求是否被允许。发送跨域请求时,请求头中包含了一些非简单请求的头信息,例如自定义头(custom header)等;不满足简单请求的条件,都认为是非简单请求。

2023-07-03 20:40:17 338

原创 解决相同路由跳转时候的报错情况

解决相同路由跳转时候的报错情况

2022-08-18 18:36:53 722 1

原创 关于lnsomnia的使用

1.下载软件傻瓜式安装,我就不演示了附上官网的链接 insomnia官网安装完成之后软件就长这个样子:2.使用实例该软件的作用就是为了测试接口是否可以正常使用我这里就用网易云api作为测试案例1.点击左上角的manage Envirments 管理环境2.再次点击左上角的Sub Envirments ,这里面有两个选项,环境和私人环境,如果你是和其他人共同开发的,就选择环境,如果是你一个人开发的,就选择私人环境。3.双击你新建的环境,可以修改名字4.这个时候你可以在

2022-05-02 11:39:06 872 1

原创 关于Git右键打开窗口失败的问题

问题原因:可能是你移动了你自己本机的git的位置,导致右键Git Bash Here和Git GUI Here打开失败解决方案:1.win+r 输入 regedit 打开注册表编辑器2.找到HKEY_CLASSES_ROOT 下的 Directory 的 shell修改shell下的git_gui和git_gui下的command修改git_gui:将数值数据下的路径改为你当前git文件夹下的git-gui.exe所在的路径修改git_gui下的command路径和上面一样

2022-04-24 10:47:50 1977

原创 TypeScript中类的继承

特点:避免重复创建类,减少代码数量通过extends关键字继承父类通过super继承父类的属性和方法实例:class Person1 { // 定义属性 name:string age:number gender:string constructor(name:string,age:number,gender:string){ this.name = name this.age = age this.ge

2022-04-24 09:46:09 1486

原创 TypeScript中的多态

概念在由子类生成的实例对象时,实例对象的类型既是父类的类型,也是子类的类型实例:class Person2{ // 定义属性 name:string constructor(name:string){ this.name = name } sayName(){ console.log(this.name); }}// p1类继承至Person2类class p1 extends Person2

2022-04-22 22:04:46 450

原创 TypeScript中定义类

和JavaScript中的一些区别加强了对类中属性的类型的限制必须要定义属性实例:class Person { // 定义属性 name:string age:number gender:string //对构造函数中传入的参数个数(3个),参数类型(string,number,string),做了一些限制 constructor(name:string='旺旺',age:number=13,gender:string='狗'){ t

2022-04-22 21:56:23 1303

原创 TypeScript中的存取器

特点:监视某个属性,在他的值被读取和修改时分别调用对应的函数(get和set)实例:class Car{ name:string price:number constructor(name:string,price:number){ this.name = name this.price = price } get Info(){ console.log('有人读取Info属性了'); ret

2022-04-22 21:48:06 189

原创 TypeScript中的抽象类

特点:抽象类是为子类服务的抽象类定义属性和方法,然后在之类中实现对应的属性和方法实例:// 抽象类是为子类服务的abstract class Dog{ // 抽象属性 abstract name:string // 抽象方法 abstract eat() sayHi(){ console.log('111'); }}class dog extends Dog{ //实现抽象类中的属性 name: s

2022-04-22 21:43:16 209

原创 Vue中的路由守卫

路由守卫的概念:作用:对路由进行权限控制。分类:全局守卫,独享守卫,组件内守卫。全局守卫:编写位置:在路由配置的文件夹里面进行编写:全局守卫又分为:全局前置守卫和全局后置守卫,分别在进入组件前和进入组件后触发。const router = new VueRouter({ mode:'hash', routes: [ { path: "/about", component: About, meta:{ title:'关于'

2022-04-14 17:33:39 1552

原创 Vue组件自定义事件

自定义事件的作用:一种组件间通信的方式,适用于:子组件 ===> 父组件使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(事件的回调在A中)自定义事件的使用方式:本质:给子组件的实例对象上绑定自定义事件第一种方式:在父组件中,直接给子组件的标签上面添加自定义事件(相当于给子组件的实例对象上绑定自定义事件):<children @demo="test"/>或 <children v-on:demo="test"/>,子组件再

2022-04-14 16:40:13 326

原创 Vue中v-model的使用和原理

v-model的特点:双向数据绑定:从数据到视图,从视图到数据v-model在一些常用标签中的使用:v-model与标签里的value属性进行双向绑定<div id="app"> // input输入框 <input type="text" placeholder="输入内容" v-model="message" /> <p>{{message}}</p> // textarea文本框 &l

2022-04-09 18:48:01 1169

原创 关于for await of的使用

使用场景const fn = (time) => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(`${time}s后我执行成功了`); }, time); });};fn(3000).then((res) => console.log(res));fn(2000).then((res) => console.log(res));fn(10

2022-04-08 18:40:11 1373 2

原创 CSS如何实现元素的水平垂直居中?

flex布局利用flex布局的属性justify-content: center;实现水平方向居中align-items:center;实现垂直方向居中<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="v

2022-04-07 14:51:49 299

原创 JavaScript的事件流模型有哪些?以及如何阻止事件冒泡和事件默认行为

JavaScript的事件流模型有哪些?事件冒泡:由最具体的元素开始接收事件,并往上传播事件捕获:由最不具体的元素接收,并往下传播Dom事件流:事件捕获 → 目标阶段 → 事件冒泡如何阻止事件冒泡stopPropagation方法:用于取消所有后续事件冒泡cancelBubble 属性:默认为 false,设置为 true 可以取消冒泡(与 DOM 的stopPropagation()方法相同),这个属性是为了兼容IE8及更早版本的浏览器。function stopBubble(eve

2022-04-04 20:42:58 1424

原创 JavaScript的装箱和拆箱操作

装箱把基本数据类型转化为对应的引用数据类型的操作先看代码:const str = 'good_student'const index = str.indexOf('_')console.log(index);//4上面代码中str只是一个基本数据类型,为什么他可以使用indexOf方法呢?是因为在JavaScript内部发生了装箱的操作:1.创建String类型的一个实例2.调用这个实例上的方法3.销毁这个实例let temp = new String('good_stu

2022-04-04 20:03:28 1259

原创 手写JavaScript的call,apply函数

apply和call函数的使用和区别转换调用函数this的指向,将调用者的this指向传入的对象在只传入this指向的对象而不传参的情况下,apply和call使用基本一致如果不传入对象,默认传入的对象为window对象//call的使用 function name() { //此时this指向call函数传入的对象 console.log(this); } let dog = { name: "旺财", }; nam

2022-04-02 10:56:14 708

原创 Css选择器种类以及优先级

元素选择器以标签名开头,选择所有span元素 /* 元素选择器 */ span { margin: 0; padding: 0; }id选择器给标签取id名,以#加id名开头,具有唯一性,选择”id = ‘p1’”的元素 /* id选择器 */ #p1 { margin: 0; padding: 0; }类选择器给标签取class名,以点.加class名开头,选择所

2022-04-01 19:45:17 3005 2

原创 关于浏览器的本地存储

浏览器本地存储大小存储内容大小一般支持5MB左右(不同浏览器可能还不一样)存储的实现机制浏览器通过Window.sessionStorage和Window.localStorage属性来实现本地存储机制存储操作的相关apilocalStorage.setItem('key','value')//该方法接受-一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。localStorage.getItem('key')//该方法接受一个键名作为参数,返回键名对应的值。

2022-03-29 20:11:53 774

原创 JavaScript中关于字符串的操作方法

字符串的拼接:concat()用于将一个或多个字符串拼接成一个新字符串concat()方法可以接收任意多个参数,因此可以一次性拼接多个字符串,concat()方法不会改变原字符串let string = 'hello'//接收一个参数let result = string.concat(',world')//接收多个参数let result1 = string.concat(',world',' !')console.log(string);// helloconsole.log(r

2022-03-27 09:00:56 158

原创 JavaScript中数组拼接的几种方式

concat()方法拼接concat方法不会更改现有数组,而是返回一个新数组。let a = [1,2,3,4,5,6]let b = ['喵喵','旺财','大黄']//concatlet c = a.concat(b)console.log(c);//[1,2,3,4,5,6,'喵喵','旺财','大黄']循环拼接let a = [1,2,3,4,5,6]let b = ['喵喵','旺财','大黄']for(let i=0;i<b.length;i++){ a.

2022-03-25 21:04:39 10007

原创 Es6中关于对象方法的扩展

Object.is()这个方法与===很像,但同时也考虑到了边界情形。这个方法必须接收两个参数:主要用于判断两个对象是否相等,但和’===有一些不一样的地方console.log(Object.is(true, 1)); // false console.log(Object.is({}, {})); // false console.log(Object.is("2", 2)); // false // 正确的 0、-0、+0 相等/不等判定console.log(Object.is(+

2022-03-25 20:46:27 361

原创 利用生成器函数解决回调地狱的问题

需求:1秒后控制台输出111,然后2秒后输出222,然后三秒后输出333原始做法setTimeout(() => { console.log(111); setTimeout(() => { console.log(222); setTimeout(() => { console.log(333); }, 3000); }, 2000);}, 1000);这只是三层嵌套,想象一下,如

2022-03-21 21:35:42 158

原创 ES6新特性:生成器函数

定义生成器函数生成器函数和普通函数定义没有太大的差别,只是函数名前面多了一个*function * gen(){ console.log(111)}执行生成器函数生成器函数直接调用函数不会执行,需要调用生成器函数内部的next方法函数才会执行function * gen(){ console.log(111)}let result = gen()result.next()//输出111yield语句yield语句会把函数分为几个部分,然后调用next函数异步去执行funct

2022-03-21 20:49:17 342

原创 关于Vue中如何自定义指令(简写形式)

1.自定义指令的作用在实际项目开发过程中,除了vue自身提供的一些固定指令,如v-if,v-show,v-model等除外,我们可能根据项目的需求来自己注册一些自定义的指令,更好的提高开发和工作效率。2.自定义指令的两种方式自定义指令有全局注册和局部注册两种方式,3.一个自定义指令的案例(局部注册)先看需求:定义一个v-big指令,要求和v-text功能类似,但会把绑定的数值放大10倍 <body> <div id="app"> &lt

2022-03-19 20:29:50 2619 12

原创 let num1=num>>n什么意思?

'num>>n’代表num除以一个数并向下取余,结果永远为整数;其中n为2的n次方,const num = 19console.log(num>>3);//输出的结果为2

2022-03-16 20:35:47 456

原创 一篇就够了,JavaScript中this的指向问题

文章目录1.直接输出的this指向window2.全局非嵌套函数的this指向window,嵌套函数this的指向他的父级函数3.对象的方法输出this,指向这个对象4.dom事件方法输出this,指向dom元素5.构造函数中this的指向:6.箭头函数的this指向箭头函数的调用者1.直接输出的this指向window //直接输出指向window console.log(this); //output:window2.全局非嵌套函数的this指向window,嵌套函数this的

2022-03-16 17:51:54 803 2

原创 Es6新特性:关于Promise的保姆级教程

文章目录1.Promise是什么?2.Promise的三种状态3.创建Promise对象4.执行promise的回调函数6.Promise对象的作用是什么?7.扩展:利用promise封装AJAX函数1.Promise是什么?Promise是最早由社区提出和实现的一种解决异步编程的方案,比其他传统的解决方案(回调函数和事件)更合理和更强大。 ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。2.Promise的三种状态1.初始化状态:pending(进行中)2.当调用re

2022-03-15 20:47:55 261 1

原创 Es6新特性:set

1.set的一些重要的特性(1)Set.prototype.constructor,构造函数,默认是set函数(2)Set.prototype.size,返回set实例的成员总数(3)set是一种数据结构,是伪数组,无法访问长度,可以Array.from方法可以将set结构转化数组,再访问它的长度;(4)set里面添加的对象即使相同也是不相等的,例如:set.add({a:1}); set.add({a:1}); 可以同时存在;2.set的四种操作方法: // 添加元素

2022-03-12 11:31:11 1524

原创 正则表达式的几种用法

0.判断特定字符串要检验某一字符串是否符合特定的格式,最方便的方式就是正则表达式:<!-- 判断变量是否符合命名规则,v是要进行判断的变量名 -->const value = /[a-zA-Z\_\$][0-9a-zA-Z\_\$]*/;value.test(v)- test>>> var value=/[a-zA-Z\_\$][0-9a-zA-Z\_\$]*/;>>> value.test('v')// true1.切割字符串在读

2022-03-12 10:48:08 228

空空如也

空空如也

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

TA关注的人

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