自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP 协议缓存

协商缓存

2023-03-15 14:22:36 396 1

原创 前端网络之同源策略

同源策略及其解决方案

2023-03-14 16:44:45 599

原创 JS 进阶笔记总结

js 核心原理

2023-02-06 17:51:56 435

原创 TCP 三次握手、四次挥手图解

TCP 三次握手、四次挥手图解,个人复习笔记,通俗易懂。

2022-07-12 15:18:19 513

原创 五层网络协议

浅浅的划一下水~

2022-07-01 16:23:49 458 2

原创 webpack 复习(六)常用扩展

常用插件clean-webpack-plugin:清楚输出目录(output 目录)html-webpack-plugin:自动生成 html 文件copy-webpack-plugin:复制静态资源(图片、svg 等静态资源)普通文件处理file-loader:生成依赖的文件到输出目录,然后将模块文件设置为:导出一个路径;file-loader//file-loaderfunction loader(source){ // source:文件内容(图片内容 buffer) //

2022-04-10 18:55:10 1024

原创 webpack 复习(五)webpack plugins

plugins上篇笔记中,介绍了webpack loader 相关知识。本篇笔记续接上文,webpack 另外一个重点知识 —— plugins(插件)。作用同样的,需要先明确 plugins 的作用。loader 的功能定位是转换代码,而一些其他操作 loader 是无法完成的。故插件目的在于解决 loader 无法实现的其他事。比如:当 webpack 生成文件时,自动添加一个 README 文件;当 webpack 编译开始时,终端输出一些日志等;…换句话说就是,在 webpack

2022-04-07 18:58:36 589

原创 webpack 复习(四)webpack loader

1. loader 配置;2. loader 处理流程

2022-04-04 16:25:11 1344

原创 webpack 复习(三)编译过程分析

1. 上一篇文章问题答案2. webpack 编译流程分析

2022-03-30 19:56:07 1135

原创 webpack 复习(二)配置文件

配置文件上一篇文章中有提到 webpack 的配置文件,其中有简单介绍一些。这篇文章来详细谈谈。webpack 的配置文件是一个 JavaScript 文件,名为 webpack.config.js,该 js 文件导出一个对象,该对象即是 webpack 配置的对象。webpack 是一个打包工具,它的作用是根据配置文件中的入口模块,进行模块的依赖分析,并不会运行源代码。如果要自定义 webpack 配置文件,需自行创建 webpack.config.js 文件进行配置。webpack 遵循

2022-03-27 18:35:19 1733

原创 webpack 复习(一)webpack编译结果分析

写在前面工作刚满一年,也停更了一年多。时间总是不等人的,一年的时间收获颇多,感想也颇多。怎么说呢,人大概就是这样吧,总是在当下幻想未来、怀念过去。走走停停,最后发现,现在就是最好的时刻。写写最近的感受吧,先提前提醒一下欧,有些感概(但是也不是特别伤感,是反省~~~~)。自己确实不是很自律,现在回头看,很后悔当初没有在合适的时间做合适的事情,虚度了不少光影。没办法啊,因为人总是懒惰的,惰性感很强啊。但是,不是还有句话叫:开始就不算晚,一切都还来得及。是的,一切都还来得及。2020 年疫情开始,现在已经

2022-03-21 22:43:26 688

原创 Git工作流(简单)

本地仓库 VS 远程仓库第一步:创建SSH Keyssh-keygen -t rsa -C "[email protected]"一路回车即可。最终在C: User\Admin下会有一个.ssh文件,把id_rsa.pub文件中的内容复制一下粘贴到下图中。Github是同理的,找到SSH Key的配置,添加一个公钥即可。初始化本地仓库初始化仓库git init全局配置项git config --global user.name “user.name”git confi

2021-09-15 23:34:08 292

原创 设计模式(三)工厂模式

定义定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的**“创建与使用相分离”**的特点。简单点来说就是,工厂模式不对外暴露具体创建对象的内部处理逻辑,而是提供一个方法来创建对象实例。该模式最直观的效果就是,创建对象实例时不直接使用new,而是调用一个方法。工厂模式按照按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要

2021-04-14 09:10:38 111

原创 设计模式(二)单例模式

设计模式含义场景实现

2021-03-30 18:21:33 97

原创 数据结构和算法(一)

概念数据结构:可以容纳数据的结构叫做数据结构。数据的呈现有很多种形式,比如,线性数据、图形数据、树形数据等等,可以想象数据结构是数据的容器。算法:是可以对数据结构进行处理的方法。这就表现在数据量大的时候了,想象一下,如果有非常多的数据,同时数据嵌套很深,在那么多的数据中找自己想要的数据、或者对特定的数据进行操作,这样就很麻烦了。就像搬家一样,搬家时肯定不会把东西一件一件的往车里放,一定是把东西装在盒子里归置好,打包成一个一个的盒子或包,包里的物品就是数据,而那些装物品用的盒子就是数据结构,而把一盒

2021-03-26 17:57:47 148

原创 设计模式(一)六大原则

写在前面很久没有更新了,因为之前在学习,接着就是投简历找工作了,很多学习笔记我都做了手写的,懒得去整理成文档了,懒了懒了~~现在实习找到了,暂时觉得还行吧,所以要慢慢的把写文章记录bug、坑、知识的习惯养起来了啊。我最近接触到了设计模式,该说不说,确实有点晦涩难懂啊,绝大多数都是理论。我看到一篇文章说设计模式是“术”,设计模式六大原则是“道”,只有经过了无数次的“术”,也就是不断的撸代码、重构、思考、总结等等,才能理解“道”的价值。换句话说就是,代码写多了,就知道为啥会有这些原则了。但是呢,我觉得吧

2021-03-18 15:24:51 170

原创 总结的HTTP比较详细的知识

HTTP含义HTTP的直译意是:超文本传输协议。它是一个明文传输协议。何为明文?就是在整个传输过程中,不管是客户端的请求还是服务器的响应,都是明文的,这样就表示其他人可以窃取或篡改。在层面上,HTTP是面向事务的应用层协议。什么是事务?所谓事务就是,一系列的信息交换,一系列信息交换是一个不可分割的整体,就是说要么全部交换完成,要么一次交换信息都不进行。每个万维网的网点都有一个服务器进程,它不断的监听TCP的80端口,以便发现是否有浏览器向服务器发出连接建立请求。一旦监听到连接建立并建立TCP连接之后

2020-11-14 11:00:36 253

原创 JS工具库moment —— 实现日历

momentmoment是一个js工具库,这个库中封装的是日期时间的方法,功能很全面。可以去moment官网看看,它的中文文档介绍的也很详细,主要是看一下方法的使用。附上官网地址:moment.js官网日历案例模仿的是win10自带的日历,但是功能没有很全面,简单的实现了上下翻更新的效果,选择年份的功能没有实现呢。简单说下,日历的逻辑问题。从当前月出发,必须直到当前月的天数,必须知道当前月第一天是星期几。只有知道了天数和第一天是星期几,才能知道第一天的位置在哪,要显示几天。核心点就是解决这两点

2020-07-30 10:57:53 6448 1

原创 数据结构 —— 队列和优先队列的实现

队列队列:允许在队头删除元素,队尾添加元素。队列遵循先进先出原则。它与栈的不同点就在于栈只能在栈顶操作元素,而队列是在队列的两头操作元素,一头添加一头删除。队列在日常生活中也非常常见,就好比我们排队取火车票,当然是先来的先取,后来的在后面排队,前面的人取完了就走了,后面的人接着。取完走的人就是队头删除元素,后来加入队列排队的人就是队尾添加元素。今天实现封装队列的函数,同样是基于数组的封装。// 队列 :先进先出 FIFO// 基于数组实现function Queue() { this.i

2020-07-27 10:49:27 243

原创 JS运动集合,封装便捷的功能函数

动画的原理匀速运动 // 1. 匀速运动 s = vt v不变 let btn = document.querySelector("button"); let div = document.querySelector(".box"); btn.onclick = function () { starMove(div, 300) }; // 运动的元素 运动到的位置 向后+ 还是向前

2020-07-20 11:18:11 152

原创 JavaScript常用的数据结构和算法 ——封装栈类

简单说说最近这几天学习到了平台期了,就是一直处于一个相同的学习水平,怎么也进步不了。之前看jQuery学习了一些常用的方法,操作dom元素、事件、动画效果、ajax等,总感觉自己只是了解了表面,想深入呢,也不知道怎么去深入。哎,又有点小无措的感觉了。然后呢,七月过去了一半,es678也过了一遍,了解了js新增的语法以及异步编程。对于异步编程现在掌握不好,因为真的真的真的不会后端,什么抓取数据、异步交互都不知道怎么操作的。仔细想了想,剩下的半个月俩星期,我要把HTML5深入一下,其中穿插着复习css重难点

2020-07-16 17:48:11 301 2

原创 vscode搭建本地服务器,使用ajax获取本地数据

直接使用ajax请求本地数据报错直接使用XMLHttpRequest对象请求会有同源策略的问题。同源是什么?协议相同:http域名相同:www端口号相同:8080默认端口如果请求资源的地址与对象所在的地址不同源,则请求失败。 function getAjaxDate() { let xhr = new XMLHttpRequest(); xhr.open("get", "a.txt", false); x

2020-07-09 10:50:59 3299 3

原创 Iterator、Generator、async、await基本语法

嘚嘚两句天气非常燥热,心情也异常的烦躁。真的是想要暴躁啊。Iterator接口数组具有Iterator接口,其本质是有Symbol.iterator属性。 let arr = [1, 3, 5]; let iter = arr[Symbol.iterator](); console.log(iter);iter返回的是一个遍历器接口,有next方法。Iterator是遍历器,for of语句的本质就是遍历器。实现Iterator接口的对象就是可遍

2020-07-08 19:10:34 197

原创 异步编程的实现 —— Promise

需要明白JavaScript是一门单线程语言,不支持多线程,是从上往下一行一行执行的同步任务,这就意味着没法使用多线程来同时处理多个任务,但是js中存在任务队列,当主程序执行完之后,会轮训任务队列依次执行,这也是我们学习的异步任务,使用Promise实现异步操作。同步:同一时间只能做一个任务;异步:同一时间做多个任务。比如:定时器就是异步任务,当程序解读到定时器时,不管定时的时间有多短,它都会被系统抛到任务队列中等侯,等到主程序任务执行完毕,任务队列会依次把定时器再抛回主程序执行。

2020-07-05 22:26:17 646

原创 JavaScript的语法糖 —— 类的实现

类的语法类的内部实现原理在类中设置对象的属性和方法定义类的静态属性和方法静态方法的使用案例:课程类批量操作 const lesson = [{ name: "js", price: 198 }, { name: "css", price: 82 }, { name: "html", price: 100

2020-07-03 19:35:33 507

原创 JavaScript 中继承合集

圣杯模式我的这篇文章——圣杯模式详细的写了整个过程,再次学习Object对象时,发现一个问题,就是子类继承了父类之后,实例化出来的对象的原型中constructor属性是可遍历的,假如我们使用 for of语句遍历对象,则会把 constructor 属性遍历出来,这样就不好了,这里更改一下 constructor 属性的设置。采取Object.defineProperty() 方法定义属性。Object.defineProperty(obj,atrr,cfigObj)obj :参数是设置属性的对

2020-07-01 15:46:10 163 2

原创 ES5和ES6中数组常用方法总结

数组无疑是js中核心数据类型之一,在DOM操作中,获取的元素一般都是一个类数组的集合,其中数组迭代方法使用的比较多。这里总结数组中比较常用的方法,方便查阅。操作方法concat() :添加数组成员,返回添加后的新数组,不改变原数组; let myArr = ['grade', 'name', 'age', 18, {}] console.log(myArr.concat(23)); //["grade", "name", "age", 18, {…}, 23]

2020-06-30 19:03:52 563

原创 Map类型实现 —— 选课小案例

最近呢,知识的输入量比较大,但是呢,依旧是在巩固基础的路上。哈哈哈哈哈哈。大概简单的过了一遍ES5和ES6中新增的数据类型、数组、字符串常用的方法。emmmmm,确实是比较好用。但是,逻辑地实现和代码实现之间是有差距的,今天这个案例,我吧,调试解决问题用了半天,唉,看来还是菜鸟啊,继续加油吧。案例介绍+按钮的点击是可以来回切换状态的,在 + — 之间切换。+ 表示添加课程,—表示取消课程。点击+号,表示选择课程,选中后,选中的课程数和课程会动态渲染在右侧的空白区域。点击过后再次点击时取消选课,渲染数据

2020-06-26 10:40:14 263 1

原创 VSCode搭建C/C++编译环境

期末实在是太痛苦了,各种报告论文作业要写,简直不要太惆怅啊。还好,还好,马上就要结束了,再考完几场试,这迷人的网课终于要结束了。哈哈哈哈哈。网课结束这学期也就结束了,总的来说个人收获还是不错的,因为没有浪费自己的时间,这就是最好的结果。前天,一起学习的伙伴问我VSCode能不能用运行C和C++语言,我也没用过,就去CSDN上看教程,就是需要装插件,再配置俩文件就ok了。今天,我把搭建的过程写下吧,方便以后忘记了,可以再回头看看。VSCode中需要的插件第一个:C/C++ 这个插件是用来搭建环境的;第

2020-06-13 11:17:05 413 2

原创 JavaScript 中特别的类型 —— RegExp类型 正则表达式

第一次接触正则表达是在上学期编译原理的课上,这个课里有讲正则表达的。当时就是随便听听,也了解一些,这几天学习了JavaScript中的正则表达,大概的内容都是一样的,具体有什么不同,暂时不知道哎,因为课上学的都忘记的差不多了(尴尬),目前记得的都是重新输入的知识,咯咯咯咯咯。正则表达在很多语言中都有,它是一个独立的存在。正则表达这个名字听起来很高级的样子,其他它简单来说就是匹配字符串,按照自定义的匹配模式去匹配符合匹配模式的字符。那什么叫匹配模式呢,就是检测字符的标准,比如检测字符串中是否含有abc字符串

2020-05-28 16:44:47 280

原创 JavaScript —— 理解深拷贝,封装深拷贝方法

深拷贝:一个变量复制另一个变量的内容,但两个变量之间相互不影响。用通俗的话说就是两个变量只是长的一样,但是不是同一个人。有深拷贝当然也就会有浅拷贝,浅拷贝比较简单,一个变量复制另一个变量的内容,这个变量是另一个变量的副本。其实俩变量都是同一个人,只是名字不同,有两个名字。深拷贝的主要应用在引用值的数据类型,像数组、对象的等。这里还牵扯到一个知识点,就是如何区分变量是数组对象还是对象。换句话需要判断变量是[ ]还是{ }。因为在JavaScript中的Array和Object都是对象。区分Array和O

2020-05-24 17:14:51 556

原创 JavaScript 之 继承 ,封装一个最佳的继承函数 —— 圣杯模式

今天的内容,与之前原型和原型链的知识有联系,可以看我的上一篇文章原型、原先链。文章里有详细的介绍。因为继承的学习是建立在这些知识的基础之上的。首先来说下为什么要用继承吧。当我们自定义构造函数并且实例化对象时,总会重复的书写相同的属性或者方法,这就让我们的代码高耦合了,简单来说就是简化程序优化代码。当对象用到相同的属性和方法时,只要继承过来就行了,若需要自己特有的属性方法再追加即可。这是我个人对为什么用继承的理解。也许是比较片面的,欢迎大家指正。原型链实现继承利用原型链来实现继承是传统方式的继承,主要

2020-05-21 11:16:40 249

原创 JavaScript中的原型、原型链、构造函数以及实例对象

其实原型我看了有一段时间了,也没有看很长时间,就是找一个下午的时间听听课,然后就感觉很懵,似懂非懂的,接着就自己想想,然后就还是懵。平时翻翻技术类的公众号或者CSDN上的文章也会涉及到原型的内容,加上前天我又看一一遍讲解,看的多了慢慢的就更熟悉更了解了。今天,下定决心要总结总结写写原型了。内容多少会有点问题,谅解谅解,毕竟是菜鸟的小白为了记录自己的学习过程。构造函数和实例对象构造函数也是一个函数,它与普通函数的区别就在于构造函数名首字母要大写。通过构造函数创建对象的过程叫对象的实例化,创建的对象是实例

2020-05-12 16:25:55 309

原创 jQuery案例 —— todoList待办事项列表

案例时间这个案例前几天就看了,一直没时间做,今天就把它做出来。这个案例是一个待办事项列表,可以记录自己当天需要做的事情,完成一件就画勾,要是不想要了就删除,可以很好的督促自己完成每天的学习任务啊。看下效果吧。当我第一次看到这个效果时,从局部出发,我的第一反应就是点击事件的删除和添加操作。但是看视频的时候老师做了需求分析,很仔细的分析了案例的效果,事实证明并没有我想的那么简单。确实是添加删除元素的操作,只是对象变了,不是父元素创造元素再添加元素的步骤,而是对存储的操作,最后把存储中的数据渲染到页面。第一

2020-05-10 16:51:41 1016 4

原创 JavaScript面向对象—— 动态创建tab标签页

昨天呢,介绍了js中类的概念,以及使用类创建对象的过程。今天就用js中的类实现一个小的功能,动态添加、删除标签页。emmmmm,也有点像tab栏切换,不过比tab栏切换多了添加和删除的功能。案例说明js动态实现标签页的创建和删除。这个案例呢,要用类来实现,Tab就是本次案例的类。但在写之前需要来分析并抽象类的特征和行为,也就是对应的类的属性和方法。这里呢,我把元素的ID作为属性,增删改查的四...

2020-05-04 16:34:42 3365 1

原创 JavaScript —— 类的创建和继承

JavaScript是一门解释性语言,但它也跟其他语言有相通的地方,比如类,js中的类与Java中的类的概念是一样的,只不过是js中的类貌似没有Java中的复杂(可能是我还没到达一定的深度)。对于我这种只是停留在了解不了解Java语言的人来说,还是有一定的基础的。哈哈哈哈哈哈。还是正事比较重要。类的创建还是先简单说下类和对象的概念吧。类是指具有相同的属性和方法抽象出来的一类事物,比如说车、衣服...

2020-05-03 21:37:43 822

原创 寒假持续中...........在家的第115天

稍稍的感概emmmmm 已经过了好久好久了。今天是在家的第115天,算算时间,自己学习一直坚持的持续了85天,剩下的30天是间接性的学习,因为有其他的事情,但是也会每天也会抽出一到两个小时的学习时间。时间过的好快,都到五月份了,春天要走了,夏天要来了。五月的第一天,新的一月需要新的动力,同时需要总结学习,反思自己,为了之后更好的去学习。目前的学习进度目前的进度是jQuery大致了解了...

2020-05-01 18:03:01 390 2

原创 jQuery —— 实现电梯导航功能

这几天没有之前学习的时间久,相对的知识输入没有之前多了,那对应的知识的输出量就变少了,但是还是在往前看的,就是速度更慢了。但是,还是在保持着知识的输入的,哈哈哈哈哈哈。今天就写个电梯导航吧。简单来说就是在当前页面中页面自己的跳转,emmmmm,还是先来用文字再解释下吧。在页面中,一般都会有一个侧边导航栏,点击选项页面会跳转到对应的区域;或者滑动鼠标页面到到一个分类的区域侧边导航栏的选项也会变。...

2020-04-25 21:40:34 4486 1

原创 jQuery —— 获取元素的偏移量和位置

今天呢,仍然是简单的介绍几个方法,获取元素对象的尺寸以及元素的位置。在JavaScript中,我们通过offset/client获取元素在页面中的位置和尺寸,同样在jQuery中,我们也需要知道如何去获取元素的大小以及元素的偏移量。jQuery获取元素的尺寸获取元素的宽高 —— 内容区的大小width() height() // 对象的宽高 ...

2020-04-23 22:09:47 3335 2

原创 jQuery —— 深拷贝和浅拷贝

当需要一个对象想把另一个对象的内容复制一份给自己时,就出现了拷贝的问题,进而引出深拷贝和浅拷贝。jQuery中有拷贝对象的方法$.extend([deep],targetobj,obj[,obj1][,obj2]):targetObj拷贝obj方法中有三个参数deep:如果值为true,为深拷贝,否则浅拷贝。默认是浅拷贝targetObj:拷贝的对象obj:被拷贝的对象...

2020-04-22 07:32:19 1060

Redux 相关知识图谱

Redux 相关知识图谱

2023-03-16

网络相关基础知识总结脑图

网络相关基础知识总结脑图

2023-03-07

空空如也

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

TA关注的人

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