自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 置顶个人博客

个人博客地址^ ^https://huangxuan-1121.github.io/

2021-10-21 15:04:22 172

原创 js判断输入是否为合法的正则表达式

js判断是否输入合法正则表达式 if (this.editParamForm.extractPattern) { let isReg = true; try { new RegExp(this.editParamForm.extractPattern); } catch (e) { isReg = false; } // console.log(isReg);

2021-09-17 14:52:53 4971

原创 leetcode 654. 最大二叉树

题意:给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下:二叉树的根是数组 nums 中的最大元素。左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。返回有给定数组 nums 构建的 最大二叉树 。/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this

2021-06-25 20:50:19 122

原创 原型、原型链、继承

原型、原型链、继承文章目录原型、原型链、继承对象:创建对象的方式:继承原型链借用构造函数继承组合继承原型式继承寄生组合式继承对象:创建对象的方式:工厂模式(无法解决对象识别问题)function gongchang(name,age,sex){ var o = new Object(); o.name = name; o.age = age; o.sex = sex; o.sayname = function(){ alert(this.

2021-06-13 18:00:43 130

原创 CSS模块化

CSS模块化CSS发展手写原生CSS:行内样式、内嵌样式、link引入外部样式、@import导入样式使用预处理器Sass/Less:支持变量、支持嵌套使用后处理器PostCSS:使用PostCss可以接受CSS文件并校验css语法或自动添加浏览器前缀使用 css modules使用css in js什么是CSS模块化?在系统结构中,模块是可组合、分解和更换的单元。模块化是一种处理复杂系统分解成为更好的可管理模块的方式。那么css模块化的思想,就是在css 编写的环境中,用上模块化的思想

2021-04-16 22:46:11 1495

原创 静态布局、流式布局、自适应布局、响应式布局

布局rem,em,px,百分比的区别:rem,em都是顺应不同页面字体大小展现产生的改变。em是相对其父元素的字体大小,会继承父级元素的字体大小。rem相对html的字体大小,即页面根元素的字体大小。px:像素,比较精确的单位,但对响应式布局不友好。百分比:继承的是父级的width和height的属性使用em,rem进行布局,相对100%更加灵活,同时可以支持浏览器的字体大小调整和缩放等正常显示。支持rem的浏览器有Mozilla Firefox 3.6+、Apple Safari 5+、G

2021-04-07 18:57:37 260

原创 回流(reflow)和重绘(repaint)

回流(reflow)和重绘(repaint)页面渲染过程生成DOM树,包括display:none的节点与此同时,进行CSS解析,生成CSSOM(style rules树)紧接着,DOM树和CSSOM结合生成render(渲染)树。render树就是根据可视化节点和css样式表结合而成的树。布局(回流),布局渲染树,将确定每一个节点在屏幕上的确切坐标绘制,将渲染树展示到屏幕中。重绘​ 当元素属性发生改变且不影响布局时(如背景颜色、透明度、字体大小等),产生重绘,只需要重新渲染,相当于不

2021-04-06 16:10:35 232

原创 EventLoop(事件循环)

EventLoopJavaScript是单线程脚本语言,也就是说当一行代码执行时,必然不会同时执行另一行代码。Event Loop(事件循环),指浏览器或node的一种解决JavaScript单线程运行时不会阻塞的一种机制的。浏览器中的Event Loop当我们执行JS代码时,实际上就是往执行栈中放入函数。在JavaScript中,不同的任务源会被分配到不同的任务队列中,源任务被分为两种,分别是宏任务(MacroTask)和微任务(MicroTask)宏任务包括script全部代码、setTim

2021-04-05 17:33:25 156

原创 异步函数—async/await

异步函数——async/awaitES8中的async/await旨在解决利用异步结构组织代码的问题。async函数async函数返回的是一个Promise对象async function test(){ return '123';}const res = test();console.log(res);//控制台输出:await函数await必须要放在async函数中await返回的是Promise成功的值await的promise失败,就会抛出异常,需

2021-04-04 17:25:41 102

原创 Promise

Promise类型ES6新增的引用类型Promise,解决异步编程。可以通过new实例化创建,创建时需要传入执行器函数作为参数。异步:操作之间没什么关系,可以同时进行多个操作。如ajax请求。同步:同时只能做一件事。promise(期约),是一个有状态的对象,期约的状态代表期约是否完成,其可能存在如下3种状态之一:待定(pending):表示尚未开始或正在执行中,初始化。兑现(fulfilled,有时也称为解决,resolved):表示已经成功完成。拒绝(rejected):表示没有成功完成

2021-04-04 11:36:20 138

原创 排序算法

相关术语:稳定:在原序列中,a与b相等,且a在b前面。如果排序后a仍在b前面,则称此排序算法为稳定不稳定:在原序列中,a与b相等,且a在b前面。如果排序后a可能出现在b的后面,则称此排序算法为不稳定时间复杂度:完成该算法所需(消耗)的时间空间复杂度:一个算法在运行过程中所占用的内存大小内排序:被排序的数据元素全部存放在计算机内存中的排序算法,即所有排序操作都在内存中完成外排序:由于数据过大,内存中不能一次装入全部数据,所以需要将待排序数据放在磁盘中,排序需要在内存和外部存储器之间进行多

2021-03-27 19:25:33 150

原创 HTTP 整理

参考MDN/HTTPHTTP是Hyper Text Transfer Protocol(超文本传输协议),是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型,本质是一个无状态的协议,但是使用cookies可以创建有状态的会话。HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的接受方发起的。HTTP分为三部分:请求行、首部、实体(内容)请求

2021-03-20 16:31:44 129 1

原创 HTML5相关知识点

src和href的区别:href: 指向网络资源的的位置,建立当前文档和资源的连接,用于超链接。src: 将资源嵌入到当前文件中,src请求的资源会将其指向的资源下载到当前文档中,如img图片。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载编译执行完成,这就是为什么要把js脚本放在底部而不是头部的原因。<!DOCDYTE>作用:声明必须位于HTML5文档的第一行,该标签告知浏览器文档所使用的HTML 规范HTML4.01 中的doctype 需要对DTD(文

2021-03-20 10:31:17 121

原创 CSS 居中问题的解决

水平居中利用块级元素撑满父级元素的特点,设置子元素的margin:0 auto;平分左右空间使用绝对定位:position:absolute; left:50%;使用flex,父元素:display:flex;子元素:justify-content:center;垂直居中行内单行文本垂直居中:父元素高度确定,子元素的line-height等于父元素的height;div{ height: 50px; background: rgb(117, 54, 54);}div

2021-03-19 12:37:13 152

原创 javaScript --正则题

题目描述 判断输入是否是正确的邮箱格式输入描述: 邮箱字符串输出描述: true表示格式正确function isAvailableEmail(sEmail) { let reg = /^([A-Za-z0-9_\-\.])+@[0-9A-Za-z]+([\.a-zA-Z]{2,8})$/; if(reg.test(sEmail)) return true; else return false;}JS正则复习...

2021-03-17 16:47:42 98

原创 JavaScript 闭包和作用域

作用域每个函数都有自己的执行环境,当代码在一个环境中执行时,会创建变量对象的一个作用域,作用域的用途,是保证对执行环境有权访问的所有变量和函数的有序访问。全局环境:是最外围的一个执行对象,在web浏览器中全局环境被认为是window对象;var color = "blue"; function changeColor(){ if (color === "blue"){ color = "red"; } else { color = "blue"; } } changeColo

2021-03-16 15:14:05 75

原创 JavaScript -- dom节点查找

题目描述查找两个节点的最近的一个共同父节点,可以包括节点自身输入描述:由题可知:oNode1和oNode2 在同一文档中,可存在的父节点关系有三种。分别是:1、同一个直接父节点2、oNode1包含oNode2,即oNode1为最近的一个共同父节点3、oNode1、oNode2并不互相包含方法一:将三种情况一一列出,并返回值function commonParentNode(oNode1, oNode2) { if(oNode1.parentNode == oNode2.

2021-03-16 13:59:24 264

原创 JavaScript -- 获取url参数

题目描述获取 url 中的参数指定参数名称,返回该参数的值 或者 空字符串不指定参数名称,返回全部的参数对象 或者 {}如果存在多个同名参数,则返回数组分两种大致情况:给了参数名和不给参数名给参数名要细分三种情况:1、只有一个同名参数,返回参数的值;2、参数没值,返回空;3、存在多个同名参数,则返回值数组不给参数名还要分两种情况:1、有参数对象返回全部的参数对象;2、否则返回空function getUrlParam(sUrl, sKey) { let argList = s

2021-03-16 10:02:05 167

原创 javaScript -- 修改this指向

题目描述封装函数 f,使 f 的 this 指向指定的对象//为什么要使用匿名函数?//如果不使用匿名函数,那么arguments获取的就是bindThis()的实参数组。//方法一:使用apply()function bindThis(f, oTarget) { return function(){   //var args = Array.prototype.slice.call(arguments); return f.apply(oTarget,argume

2021-03-14 21:09:36 111

原创 JavaScript 原型和原型链

原型无论什么时候,只要创建里一个函数,就会为该函数创建一个prototype属性,这个属性指向函数的原型对象;在prototype中会自动获得一个constructor属性,指向构造函数。其中,person1为Person的一个实例。-hasOwnProperty() :此方法可以用于检测一个属性是存在于实例中还是原型中。若来自实例则返回true-in操作符: 只要通过对象就能访问到的属性,则返回true。同时使用二者可以判断该属性是存在于对象中还是原型中。原型链原型链是实现继承的主要方法,

2021-03-13 15:22:16 76

原创 javaScript -- 牛客NC96 判断一个链表是否为回文结构

题目描述给定一个链表,请判断该链表是否为回文结构。/* * function ListNode(x){ * this.val = x; * this.next = null; * } *//** * * @param head ListNode类 the head * @return bool布尔型 */function isPail( head ) { // write code hereNC //方法一:将链表转换为数组,用数组比较头尾是否一致

2021-03-12 16:09:10 144 1

原创 javaScript --牛客NC72 二叉树镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } *//** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pRoot TreeNode类 * @return TreeNode类 *///不断交换左右节点的值functio

2021-03-12 10:02:26 93

原创 javaScript -- 牛客NC30 数组中未出现的最小整数

题目描述给定一个无序数组arr,找到数组中未出现的最小正整数例如arr = [-1, 2, 3, 4]。返回1arr = [1, 2, 3, 4]。返回5[要求]时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)//解法一:先给数组排序,设置min = 1,遍历数组,如遇到与min相等的数,则min++function minNumberdisappered( arr ) { // write code here arr.sort(); var min = 1

2021-03-11 23:17:11 454

原创 javaScript --牛客 NC45 实现二叉树先序,中序和后序遍历

题目描述分别按照二叉树先序,中序和后序打印所有的节点。二叉树的遍历主要有三种:(1)先(根)序遍历(根左右)(2)中(根)序遍历(左根右)(3)后(根)序遍历(左右根)/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } *//** * * @param root TreeNode类 the root of binary tree *

2021-03-08 21:38:17 118

原创 JavaScript -- 牛客NC19 子数组的最大累加和问题

题目描述给定一个数组arr,返回子数组的最大累加和题目保证没有全为负数的数据[要求] 时间复杂度为O(n),空间复杂度为O(1)/** * max sum of the subarray * @param arr int整型一维数组 the array * @return int整型 */function maxsumofSubarray( arr ) { // write code here //如果"前一个值" + "当前值" > "当前值",那么保留累加结果

2021-03-07 21:22:32 161 1

原创 javaScript -- 牛客 NC128 容器盛水问题

题目描述:给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。图解:以数组[3,1,2,5,2,4]为例初始: res = 0, L = 0, R = arr.length-1,lMax = 0, rMax = 0;第一轮判断:lMax <= rMax,res += 3-3;L++;第二轮判断:lMax <= rMax,res += 3-1;L++;第三轮判断:lMax <= rMax,res += 3-2;L++;第四轮

2021-03-06 10:58:01 176

原创 JavaScript -- 牛客NC73 数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。function MoreThanHalfNum_Solution(numbers){ // write code here var len = numbers.length/2; var tag; for(var i = 0;i<numbers.

2021-03-05 15:17:05 132

原创 Javascript --- leetcode 658. 找到 K 个最接近的元素

给定一个排序好的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。整数 a 比整数 b 更接近 x 需要满足:|a - x| < |b - x| 或者|a - x| == |b - x| 且 a < b示例 1:输入:arr = [1,2,3,4,5], k = 4, x = 3输出:[1,2,3,4]示例 2:输入:arr = [1,2,3,4,5], k = 4, x = -1输出:[1,2,3,4]

2021-03-04 16:36:10 134 1

原创 javascript -- leetcode 面试题 16.01. 交换数字、1365. 有多少小于当前数字的数字

题意: 面试题 16.01. 交换数字编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。题解:/** * @param {number[]} numbers * @return {number[]} */var swapNumbers = function(numbers) { numbers.push(numbers.shift()); return numbers;};题意: 1365. 有多少小于当前数字的数字给你一个数组

2020-11-30 21:51:03 131

原创 javascript -- leetcode 976. 三角形的最大周长、5613. 最富有客户的资产总量

题意: 976. 三角形的最大周长给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。题解:/** * @param {number[]} A * @return {number} */var largestPerimeter = function(A) { A.sort((a, b) => a - b); //排序 //console.log(A); for(let

2020-11-29 20:58:11 99

原创 javascript -- leetcode 1431. 拥有最多糖果的孩子、1108. IP 地址无效化

题意:题解:/** * @param {number[]} candies * @param {number} extraCandies * @return {boolean[]} */var kidsWithCandies = function(candies, extraCandies) { let res = new Array; for(let i = 0;i < candies.length;i++){ let re = candies.fil

2020-11-28 20:21:35 65

原创 javascript -- leetcode 933. 最近的请求次数、206. 反转链表、83. 删除排序链表中的重复元素、141. 环形链表、349. 两个数组的交集

javascript数据结构队列、链表和集合的学习 leedcode 933. 最近的请求次数var RecentCounter = function() { this.p=[];};/** * @param {number} t * @return {number} */RecentCounter.prototype.ping = function(t) { this.p.push(t); while(this.p[0] < t - 3000){

2020-11-27 21:59:47 98

原创 javascript -- leetcode LCP 01. 猜数字 和 LCP 06. 拿硬币

题意:题解/** * @param {number[]} guess * @param {number[]} answer * @return {number} */var game = function(guess, answer) {/*解法一: var sum=0; for(let i=0;i<guess.length;i++){ if(guess[i]===answer[i]) sum++; } return s

2020-11-26 21:31:03 132

原创 javascript -- leetcode 20. 有效的括号

如题:解:/** * @param {string} s * @return {boolean} */var isValid = function(s) {//1、新建栈//2、扫描,左括号入栈//3、栈空合法 var stack = []; for(var i = 0;i<s.length;i++){ var c = s[i]; if(c === '(' || c === '[' || c === '{') stack.push(c

2020-11-24 21:30:38 57

原创 javascript -- leetcode 1. 两数之和

如题:解法一: 双重for循环遍历var twoSum = function(nums, target) { for(var i=0;;i<nums.length;i++) for(j=i+1;j<nums.length;j++){ if(nums[i]+nums[j]==target) return [i,j]; }};解法二: 用Map对象Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可

2020-11-24 20:27:55 58

原创 vue实现父子路由(组件)传值

使用场景:将用户刚刚更改的头像或用户名实时在同一页面实现,如下图vm.$emit( eventName, […args] )参数:{string} eventName[…args]触发当前实例上的事件。附加参数都会传给监听器回调。1. 子路由中存入数据2. 在父路由中绑定子路由传来的数据3.处理父路由中传过来的数据...

2020-07-03 10:51:35 3691 2

原创 vue使用elementUI组件做面包屑

element UI官网效果如图:1. 先在router文件夹里的index.js下引入组件采用子路由的方式引入子路由组件 { path: '/', name: '后台管理系统', component: HelloWorld, children: [{ path: '/', name: '首页', component: Index }, {

2020-07-03 10:21:16 3133 4

原创 传输层——传输控制协议TCP

概述TCP特点TCP的主要特点面向连接每条连接只能有两个端点,每一条都是点对点连接。是一条虚连接提供可靠交付提供全双工通信面向字节流根据对方给的窗口值和网络拥塞的程度来决定一个报文应包含多少个字节可靠传输的工作原理停止等待协议(停等协议)无差错情况和出现差错确认丢失和确认迟到总之就是没有收到M1的确认包,就不会发送下一个包的确认缺点:信道利用率低连续ARQ协议-自动重传请求(Automatic Repeat Request)连续ARQ协议规定,发送方每收到一个

2020-06-02 15:54:19 966

原创 WampServer使用手册——创建虚拟主机和引入数据库文件

这学期选修了一门网络开发综合课程设计课,昨晚交作业的时候老师另外还要让写一个系统使用手册,我Σ(っ °Д °;)っ了创建虚拟主机首先打开安装好的WampServer等待提示灯变绿后,单击图形,选择localhost打开后点击Add a Virtual Host完成后,打开localhost,有myweb路径代表虚拟主机创建成功现在可以把你的项目文件放进myweb目录下,如:此时,你可以点击localhost下的myweb虚拟主机最后你还可以使用快捷方式打开你建的虚拟主机导

2020-06-02 09:46:43 1116

原创 传输层——用户数据报协议UDP

UDP特点无连接尽最大努力交付面向报文没有拥塞控制支持一对一、多对多、一对多、多对一的交互通信首部开销小,只有8个字节UDP的首部格式数据报UDP有两个字段:数据字段和首部字段首部字段的长度为8个字节,四个字段组成,每个字段2个字节,分别是源端口目的端口校验和长度...

2020-06-01 15:32:52 293

PHP综合开发课程设计.zip

语言:HTML,CSS3,PHP,JS 开发工具:vscode、wampserver 一、前台部分 1.用户注册/登录:游客需注册才能查看旅游攻略的详情。 2.旅游攻略展示:旅游地点和图片在前台主页面展示,供用户浏览查找。 3.我发布的攻略:用户可以查看和修改用户已经发布的旅游攻略。 4.发布攻略:用户可以自行发布旅行攻略。 5.联系我们 二、后台部分 1.管理员登陆:由系统对管理员用户名和密码信息进行验证。 2.旅游攻略文章管理:管理员可以添加修改和删除旅游攻略文章,并且可以在顶部搜索文章。 3.用户管理:管理员可以添加修改和删除用户,并且在顶部对用户进行搜索。 5.修改密码

2021-02-04

组网工程_小型机房组建.zip

计算机学院要组建三个机房:网络安全机房、物联网机房及综合机房。三个机房的计算机台数分别为:60、40、240。现请你为计算机学院设计组建这三个机房网络。

2021-02-04

空空如也

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

TA关注的人

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