自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DreamFive

共勉

  • 博客(159)
  • 收藏
  • 关注

原创 六、集合和字典

文章目录一、认识集合二、集合的封装三、集合间的操作四、字典一、认识集合集合通常是由一组无序的,不能重复的元素构成。通常使用 哈希表来实现二、集合的封装在 ES6中,Set 数据结构其实就是这样一种结构。但是我们还是来自定义的封装一下,来熟悉集合结构。class Set{ constructor(){ this.items = {} } // 添加一个新的项 add(value){ if(this.has(value)) return

2022-05-06 00:08:02 963

原创 五、双向链表

文章目录一、什么是双向链表?一、什么是双向链表?其实上一节我们说的链表是单向链表.而双向链表的区别在于:既可以从头遍历到尾,也可以从尾遍历到头一个节点既有指向前一个元素的引用,也有一个指向后一个元素的引用当然他也有一些缺点:每次在插入或删除某个节点时,需要处理四个引用,而不是两个相对于单向链表,必然占用的空间内存更大一些但这些缺点和我们使用起来的方便程度相比,是微不足道的class DoubleNode { constructor(data){ this.d

2022-05-01 22:25:02 207

原创 四、链表结构

文章目录一、认识链表二、链表结构的封装一、认识链表链表和数组一样,可以用于存储一些列数据,但两者的实现机制完全不同.数组的创建通常需要申请一段连续的内存空间,并且大小是固定的,所以当当前数组不能满足需求时,需要扩容.而且在数组开头和中间插入数据的成本很高,需要大量的元素位移惟一.链表的特点和优势:链表的元素在内存中不必是连续的内存空间链表的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(指针)组成链表在创建是不必确定大小,大小是可以无限延伸下去的链表在插入和删除数据时,时间复杂

2022-04-27 00:23:29 168

原创 三、队列结构

文章目录一、认识队列结构二、队列的封装三、优先级队列四、优先级队列的封装一、认识队列结构队列(Queue)一种受限的线性表,先进先出(FIFO)受限之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作二、队列的封装有两种实现方式,基于数组实现基于链表实现我们先基于数组实现,后面学习到链表时,再进行学习function Queue(){ this.items = [] // 向队尾添加一个或者多个新的项 Queue.prototype.en

2022-04-26 00:00:55 1589

原创 二、栈结构

文章目录一、认识栈结构二、栈结构封装一、认识栈结构我们知道,数组是一种线性结构,并且可以在数组的任意位置插入和删除数据.栈(stack)是一种受限的线性结构,后进先出(LIFO)其限制是允许在表的一端进行插入和删除.这一端称为栈顶,相对的,另一端称为栈底LIFO(last in first out)后进先出,就是后进入的元素,第一个弹出栈空间向一个栈插入一个新元素称作进栈、入栈或压栈,从一个栈删除元素称为出栈或退栈,并且进栈和出栈都是从栈顶进行操作二、栈结构封装// 封装栈类funct

2022-04-25 22:59:03 228

原创 一、什么是数据结构与算法?

文章目录什么是数据结构与算法?一、数据结构二、什么是算法?什么是数据结构与算法?一、数据结构通俗的来讲,它是是在计算机中,存储和组织数据的方式.二、什么是算法?一个有限的指令集,每条指令的描述不依赖于语言,接受一些输入,产生输出,一定在有限步骤之后终止....

2022-04-21 23:33:31 411

原创 MAC 忘记Homebrew安装的mysql密码

文章目录1、直接在 my.cnf 修改,跳过 mysql 密码验证2、修改密码3、恢复 my.cnf4、重启 mysql 登录测试1、直接在 my.cnf 修改,跳过 mysql 密码验证# 通过 vim 修改配置文件$ /usr/local/etc/my.cnf# 上述命令通过 vim 进入文件模式, i 进行编辑,在末尾添加shkip-grant-tables# 这一行内容,然后 esc +:wq 退出2、修改密码# 重启 mysql$ mysql.server restart#

2021-02-24 20:59:53 433

原创 6、MySQL 基础-分组查询

文章目录分组查询分组查询/** 语法:* select 分组函数,列(要求出现在 group by 的后面)* from 表* where 筛选条件* group by 分组的列表* order by 子句* 注意:* 查询列表必须特殊, 要求是分组函数和 group by 后出现的字段* 特点:* 1、分组查询中的筛选条件分为两类* 分组前筛选* 分组后筛选* 2、分组函数做条件肯定是放在 having 子句中* 3、能用分组前筛选的优先使用*

2021-01-27 21:16:47 86

原创 5、MySQL 基础-常见函数介绍

文章目录常见函数一、单行函数分类一、字符函数二、数学函数三、日期函数四、其他函数五、流程控制函数常见函数/** 调用: select 函数名(实参列表) from 表;* 分类:* 1、单行函数* 2、分组函数*/一、单行函数分类字符函数数学函数日期函数其他函数流程控制函数一、字符函数//# 一、字符函数//# 1、length 用于获取字节长度(注意:是字节不是字符)SELECT LENGTH('jhon');//# 2、concat 用于拼接字符串SE

2021-01-19 22:48:20 105

原创 4、MySQL基础-排序查询

文章目录排序查询排序查询/** 排序查询* 语法:* SELECT 查询列表 FROM 表 WHERE 查询条件 ORDER BY 排序表 ASC/DESC;* ASC 升序 DESC 降序* 特点:* 1、asc 代表升序排序, desc 代表降序排序,如果不写,默认升序排序 * 2、order by 子句中可以支持单个字段,多个字段、表达式、函数、别名* 3、order by 子句一般放到查询语句的最后面*/SELECT * FROM error_log ORDER

2021-01-17 22:30:07 95

原创 3、MySQL 基础-条件查询

文章目录条件查询条件查询语法// 语法select 查询列表 from 表名 where 筛选条件;/** 分类* 1、按条件表达式筛选,条件运算符:> < = <>(不等于) >= <=* 2、逻辑表达式筛选,逻辑运算符: && || ! * and or not* 3、模糊查询* like* between and* in* is null* is not null*///#

2021-01-16 22:50:01 101

原创 2、MySQL基础—基础查询介绍

文章目录基础查询基础查询// 语法select 查询列表 from 表名;/**1、查询列表可以是: 表中的字段、常量值、表达式、函数*2、查询的结果是一个虚拟的表格*///# 查询单个字段SELECT ERROR_CODE FROM error_log;//# 查询多个字段SELECT ERROR_NAME,THREAD_ID FROM error_log;//# 查询所有字段SELECT * FROM error_log;//# 查询常量SELECT 1;SEL

2021-01-14 22:09:52 74

原创 01、MySQL 基础—常见命令

文章目录MySQL 服务的登录和退出MySQL 常见命令MySQL 的语法规范MySQL 服务的登录和退出// 登录// 方式一: 通过mysql自带的客户端,只限于root用户// 方式二: 通过终端输入指令// mysql -h 主机名 -P 端口号 -u 用户名 -pmysql -h localhost -P 3306 -u root -p// 或者: mysql -h 主机名 -P 端口号 -u 用户名 -p密码, 注意 -p密码 之间不能有空格,前三项可以有空格// 退出

2021-01-11 22:07:33 75

原创 导出为pdf

将 指定页面或模块 导出为pdf步骤npm install html2canvas jspdf拷贝htmlToPdf.js (提取码:lip0)到项目中,如 src/libs/ 。在main.js 引入文件import htmlToPdf from '@/libs/htmlToPdf';Vue.use(htmlToPdf);在需要导出的地方加入以下代码<template><div id="role"> ... <co-button type=

2020-06-28 10:47:00 285

原创 ES5/ES6 除了写法之外还有什么区别?

区别如下:1、class 声明会提升,但是不会初始化赋值const bar = new Bar(); // 2funciton Bar(){ return 2;}const foo = new Foo(); // ReferenceError: Foo is not definedclass Foo{ constructor(){ this.foo = 42; }}2、class 声明内部会启用严格模式function Bar(){ bar = 42; // 不会报错}

2020-06-10 16:50:17 293

原创 JS实现继承的几种方式

定义一个父类function Father(name){ // 属性 this.name = name || 'father'; // 实例方法 this.sayName = function(){ console.log(this.name); }}// 实例原型方法Father.prototype.age = 18;Fatcher.prototype.sayAage = function(){ console.log(this.age);}一、原型链继承将父类的实例作为

2020-06-06 17:49:43 307

原创 简单介绍几种前端跨域解决方案

什么是跨域?简单来说,就是一个域下的文档或脚本试图去访问另一个域下的资源,这是广义的跨域。什么是同源策略?同源策略/SOP(same origin policy)是一种约定。他是浏览器最基本也是最核心的安全功能,如果缺少了同源策略,浏览器将会遭受XSS等攻击,所谓的同源策略就是协议、域名、端口号三者都相同。跨域解决方案1、通过 JSONP 跨域2、document.domain + iframe 跨域3、location.hash + iframe 跨域4、window.name + ifr

2020-05-19 23:15:38 573

原创 深入理解 JS 中的变量提升

1、JS 的预解析机制讲变量提升之前,我们先来了解一下 JS 的预解析机制。JS 的解析和执行JS 的解析过程分为两个阶段:预编译期(预处理,预解析,预编译)和执行期。简单来说,所谓的 预解析 就是:在当前作用域内(请注意,当前作用域有可能是全局作用域,也有可能是当前函数的局部作用域),JavaScript 在执行代码之前,浏览器会默认地首先把所有带 var 和 function 声明的变量进行提前的声明或者定义。var声明的变量和function声明的函数预解析是有去别的,var 声明的变量预解

2020-05-19 01:04:15 191

原创 二、MongoDB的管理工具,Database Master 百度网盘资源下载

直接贴链接链接:https://pan.baidu.com/s/1uWrzZXfhE5SSNzthXMwANw提取码:8sln

2020-04-27 11:15:48 873 2

原创 一、mongoDB window64 百度网盘资源下载,及安装教程

最新在学习 Node.js,涉及 mongoDB 安装包下载时,csdn 上各种下载资源都需要积分,本身学习就不容易,下载个资源还有阻碍。自己这里附上免费资源,mongo 当前最新版本(2020年4月27日下载):链接:mongodb-win32-x86_64-2012plus-4.2.6-signed提取码:ygin安装教程(超级简单,节省大家时间,对着安装就行):1. 下载完安装包之后...

2020-04-27 10:48:49 4572 5

原创 setTimeout、setInterval 和 requestAnimationFrame 之间的区别

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-04-20 15:54:59 1234

原创 第八节、JavaScript 设计模式——发布-订阅模式

定义:发布-订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖他的对象都将得到通知。实现发布-订阅的步骤:首先要指定好谁充当发布者然后发布者添加一个缓存列表,用于存放回调函数以便通知订阅者最后发布消息时,发布者会遍历这个缓存列表,依次触发里面存放的订阅者回调函数另外,我们还可以往回调函数里填入一些参数,订阅者可以接收这些参数。发布-订阅...

2019-12-12 23:11:37 117

原创 第七节、JavaScript 设计模式——迭代器模式

定义:迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。在 JavaScript 中,像 Array.prototype.forEach等都是其内置的迭代器实现。迭代器类型内部迭代器let each = (arr,callback)=>{ for(let i=0; i<arr.length; i++){ callback.cal...

2019-12-10 23:10:17 153

原创 第六节、JavaScript 设计模式——代理模式

定义:代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。举个例子来说明吧。小明遇到了他的百分百女孩,暂且把他的女神称呼为 A,小明决定给A送一束花表白。刚好小明和A有一个共同的朋友B,于是内向的小明决定让B来代替自己完成送花这件事。let Flower = function(){};let xiaoming = { sendFlower: (target)=>{ ...

2019-12-09 23:31:05 96

原创 第五节、JavaScript 设计模式——策略模式

定义:定义一系列的算法,把它们一个个封装起来,并且使他们能互相替换。策略模式有着广泛的应用,举一个计算年终奖金的例子,年终奖的计算方式会根据工资基数和年底绩效考核来计算的。let strategies = { "S":(salary)=>{ return salary*4; }, "A":(salary)=>{ return salary*3; }, "B":(s...

2019-12-08 00:19:52 102

原创 第四节、JavaScript 设计模式——单例模式

定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现一个单例模式。// 实现单例模式无非是用一个变量来标志当前是否为某个类创建过对象,如果是,则下次获取该类时直接返回之前创建的对象var Singleton = (name)=>{ this.name = name };Singleton.prototype.getName = ()=>{ alert(this.na...

2019-12-07 00:12:47 93

原创 第三节、JavaScript 设计模式——闭包和高阶函数

这一节同上一节一样,都是为后续学习打基础的内容。对此非常了解的可以跳过。一、闭包闭包是什么?闭包就是有权访问其他函数作用域内变量的函数。闭包的作用通过闭包可以访问局部变量可以让局部变量的值始终保持在内存中(因此要注意不能滥用闭包)可以暂存数据,给变量开辟私密空间,避免外部污染。闭包优缺点优点:可以把局部变量驻留在内存中,可以避免使用全局变量;全局变量在复杂程序中会造成许多麻烦...

2019-12-05 00:12:02 113

原创 第二节、JavaScript 设计模式——this、call 和 apply

这一节不涉及具体设计模式,只是针对我们后续的学习做一个铺垫,如果是对这三者很了解的话请跳过此节。JavaScript 的 this 总是指向一个对象,具体指向哪个对象在运行时基于函数的执行环境动态绑定的,而非函数声明时的环境。除去不常用的 with 和 eval 的情况,this 的指向大致分为以下4种: 作为对象的方法调用 作为普通函数调用 构造器调用 Function.proto...

2019-12-03 23:14:19 101

原创 第一节、JavaScript 设计模式——原型模式

前言:刚开始学习这部分内容时,只学了 1/5 就放弃了,当时感觉实际开发中没有太大用处。随着之后学习 Vue 和 React 时,发现设计原理与底层实现方式涉及到发布-订阅者模式(观察者模式),学习起来费了一番功夫,这才意识到掌握 JavaScript 设计模式与开发实践是多么重要的一件事情。好了,废话不多说,现在开始我们的学习(第一节比较简单,也将接触到我们的第一个设计模式,大家记住就行)。...

2019-12-02 22:57:57 113

原创 JavaScript 数据结构与算法十大经典排序算法-快速排序(六)

优点:快速排序的特点就是快,而且效率高。缺点:需要另外声明俩个数组,浪费了内存空间原理先找到一个基准点(一般在数组的中部),然后把基准点从数组中取出,数组剩余元素依次与该基准点做对比,如果比它小,放左边,反之,放右边左右分别用一个空数组去存储比较后的元素最后递归上述操作,直到数组长度 <= 1代码实现const quickSort = arr => { if ( a...

2019-08-21 13:40:56 150

原创 JavaScript 数据结构与算法十大经典排序算法-归并排序(五)

原理归并排序,是先把数组从中间分成两部分,然后对前后两部分分别排序,再将排序好的连部分合并在一起。核心思想是将两个有序的数列合并成一个大的有序序列。通过递归,层层合并,即为归并...

2019-08-21 10:32:28 166

原创 JavaScript 数据结构与算法十大经典排序算法-选择排序(四)

原理选择排序实现思路有点类似插入排序,也分排序区间和为排序区间。选择排序每次会从未排序区间中找到最小(最大)的元素,将其放到已排序的末尾步骤首先在未排序的序列中找到最小(最大)元素,存放到排序序列的起始位置(也是末尾,因为是第一次)再从剩余未排序元素中继续寻找最小(最大)元素,然后放到已排序序列末尾重复第二步,直到所有元素都排序完毕实现const selectSort = arr...

2019-08-08 11:14:36 131

原创 JavaScript 数据结构与算法十大经典排序算法-希尔排序(三)

一、希尔排序希尔排序其实也是插入排序的一种,也叫缩小增量排序。原理先将整个待排序的记录序列分割成若干子序列分别进行直接插入排序待整个序列中的记录基本有序时,在对全体记录进行一次直接插入排序简单来说,就是按一定的间隔对数列进行分组,然后在每一个分组中做直接插入排序,随后逐次缩小间隔,在每一个分组中做插入排序…直到间隔等于1,做一次插入排序后结束。希尔排序的核心在于间隔序列的设定,...

2019-08-07 17:20:27 166

原创 JavaScript 数据结构与算法十大经典排序算法-插入排序(二)

插入排序分为 直接插入排序 和优化后的 折半插入排序 与 希尔排序,通常所说的是直接插入排序。一、直接插入原理通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。步骤从第一个元素开始,该元素认为是已经被排过序的取出下一个元素,在已排序的元素序列中从后向前做对比如果对比的元素(已排序)大于新元素,将该元素移到下一个位置,也就是往后移一位重复步骤 3 ...

2019-08-05 23:49:40 106

原创 JavaScript 数据结构与算法十大经典排序算法-冒泡排序(一)

实现原理简单来说就是实现的思想冒泡排序只会操作相邻的两个数据每次冒泡操作都会对相邻两个元素进行比较,看是否满足大小关系要求。如果不满足就让他俩互换一次冒泡会让至少一个元素移动到它应该再度位置,重复 n 次,就完成了 n 个数据的排序工作特点优点:排序算法的基础,简单使用易于理解缺点:比较次数多,效率较低实现//冒泡排序(未优化)const buddleSort = ar...

2019-08-02 18:18:25 188

转载 flex布局介绍

Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。.box{ display: flex;}行内元素也可以使用 Flex 布局。.box{ display: inline-flex;}Webkit 内核的浏览器,必须加上-webkit前缀。.box{ display: -web...

2019-07-30 16:11:33 139

原创 第01节、NodeJs简介和特点

简介简单的说 Node.js 就是运行在服务端的 JavaScript,是一个能让JavaSript运行在服务器端的开发平台Node.js 不是一门语言,与PHP、JSP、Pythen、Perl、Ruby的“既是语言,也是平台”不同,Node.js 的使用 JavaScript 进行编程,运行在 JavaScript 引擎上(V8)。与PHP、JSP 等相比,Node.js 跳过了Appac...

2019-04-14 22:22:05 305

原创 第 02节、掌握 Vuex 的五个核心概念

Vue 应用的核心就是 store (仓库)。它包含着你应用种的大部分状态(state)。Vuex 和单纯的全局对象有两点不同:Vuex 的状态存是响应式的,当 Vue 组件从 store 中读取的**状态(state)**发生改变时,组件也会也会得到更新不能直接改变 store 中的 state,需要通过显示的提交(commit) mutation。先写一个最简单的 Store,方便后...

2019-03-12 17:56:30 251

原创 CSS3 ---2D/3D、过渡、动画

212

2018-11-06 16:00:00 611

原创 HTTP 简略整理--3、HTTP Cookie

HTTP Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,他会在浏览器下次向同一服务器发起请求时被携带并发送到服务器上。Cookie 主要用于以下三个方面:会话状态管理(如用户登录状态、购物车、游戏分数或其他需要记录的信息)个性化设置(如用户自定义设置/主题等)浏览器行为跟踪创建Cookie服务器可以在响应头里面添加一个Set-Cookie选项。浏览器收到响应后通...

2018-10-12 11:40:23 307

空空如也

空空如也

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

TA关注的人

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