自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS函数的防抖、节流、柯里化

一、函数防抖函数防抖也是我们在一个网站中经常会用的到的方法。那么什么是函数防抖呢?其实很简单,就是我们在一段时间内频繁触发同一个事件,可能会十分的影响性能,所以,我们想要在一段时间内只触发一次。这就要用到防抖和节流。举个例子,防抖是频繁触发后,1s内没有再触发时才调用事件处理程序。/** * 函数防抖 */ function debounce(callback, time) { var timer; //使用闭包,可以避免污染全局变量 return function () { clearTimeou

2022-04-23 21:03:35 1274

原创 2022最新前端经典面试试题

1,阐述清楚浮动的几种方式(常见问题)(1)父级div定义 height原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。优点:简单、代码少、容易掌握缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题123(2)父级div定义 overflow:hidden原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度优点:简单、代码少、浏览器支

2022-04-23 20:54:16 371

原创 浏览器渲染过程,DOM树和渲染树的区别,什么是重绘和回流?

HTML 经过解析生成 DOM树; CSS经过解析生成 Style Rules。 二者一结合生成了Render Tree。 通过layout计算出DOM要显示的宽高、位置、颜色。 最后渲染在界面上,用户就看到了浏览器的渲染过程:解析 HTML 构建 DOM(DOM 树),并行请求 css/image/js CSS 文件下载完成,开始构建 CSSOM(CSS 树) CSSOM 构建结束后,和 DOM 一起生成 Render Tree(渲染树) 布局(Layout):计算出每个节点在屏幕中的位置

2022-04-23 20:23:28 392

原创 JS数组去重的12种解决方法

pop push shift unshift slice splice sort reverse concot join indexOf lastIndexOf map forEach还有其他可以处理数组的几个方法~– includes:返回一个布尔值,如果存在返回false– find:返回第一次找到的那一项– some:返回一个布尔值,只要一个是true,就返回true– every:返回一个布尔值,需要每一项都是true,才返回true– filter:

2022-04-23 20:08:58 389

原创 深入理解Object.entries()

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用for...in循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。通俗点就是Object.entries()可以把一个对象的键值以数组的形式遍历出来,结果和for...in一致,但不会遍历原型属性。示例1 — 传入对象const obj = { foo: 'bar', baz: 'abc' };console.log(Object.entries(o...

2022-04-23 20:02:12 2681

原创 小程序的坑:wx.reLaunch闪退问题

相信我们在开发小程序的时候都遇到过路由问题,最多的无非就是路由栈满,如何跳转?我们知道微信生命周期有个onUnload,如果我们在这里了写了wx.navigateBack,那么当你在后面的页面写wx.reLaunch去清除路由跳转的时候就小程序就会闪退!!!所以,如果你小程序闪退了,可以先排除这个问题!拥有自己的梦想,带着梦想出发,不畏惧迷茫,像一只蝴蝶朝着美丽的彩虹奋力飞翔,成长为更好的自己;像天空中闪烁的星星,散发出更亮的光芒!...

2022-04-23 19:44:48 994

原创 msyql数据批量替换方法:replace

有时我们在数据插入之后,会发现数据有问题,这个时候一般有两种解决办法,一种就是通过程序批量修改,一种就是通过mysql直接进行数据的替换。下面介绍批量替换方法:replacereplace(object,search,replace)repalce是mysql提供的默认字符串处理函数,根据函数定义,我们只需要传入对应参数即可。insert into `test` set name = 'menghuiguli-666';update `test` set name = repalce

2022-04-23 19:23:35 1434

原创 mysql批量生成测试数据

mysql通过存储过程可以生成海量数据:代码如下:-- 创建测试表DROP TABLE t1;CREATE TABLE t1(id INT unsigned NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL,status TINYINT unsigned NOT NULL DEFAULT 1,PRIMARY KEY(id));-- 添加数据DROP PROCEDURE insert_t1;DELIMITER /

2022-04-23 16:17:47 1407

原创 面试经常提到的PHP经典面试题

问题1:请用最简单的语言告诉我PHP是什么?回答:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言。 问题2:什么是MVC?回答:MVC由Model(模型), View(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码。Model:数据信息存取层。View:view层负责将应用的数据以特定的方式展现在界面上。Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

2022-04-23 16:13:13 112

原创 ConncurrentHashMap和hashtable的比较和理解

问:两个线程并发访问map中同一条链,一个线程在尾部删除,一个线程在前面遍历查找,问为什么前面的线程还能正确的查找到后面被另一个线程删除的节点答:ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,即线程安全,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable是阻塞的,每次同步执行的时候都要锁住整个结构,Concurrent

2022-04-23 16:00:30 668

原创 浅谈JAVA框架Spring

spring 是 Java 非常重要的框架,且蕴含了一系列设计模式,非常值得研究,本期就通过 Spring学习 这篇文章了解一下 spring。spring 为何长寿spring 作为一个后端框架,拥有 17 年历史,这在前端看来是不可思议的。前端几乎没有一个框架可以流行超过 5 年,就最近来看,react、angular、vue 三大框架可能会活的久一点,他们都是前端相对成熟阶段的产物,我们或多或少可以看出一些设计模式。然而这些前端框架与 spring 比起来还是差距很大,我们来看看 spri

2022-04-22 23:41:51 5377

原创 java中抽象类是什么?它与接口有什么区别

抽象类是指不允许被实例化的类;一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。abstract class和interface所反映出的设计理念不同。其实abstract class表示的是”is-a”关系,interface表示的是”like-a”关系实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。但在Java8中允许接口中有静态默认的方法。接口中定义的变量默认是public static final 型,且必须给其初值,

2022-04-22 23:37:08 125

原创 python GUI框架流式布局pyqt5图片瀑布流布局

还不会流式布局?流式布局,也叫做瀑布流布局,是网页中经常使用的一种页面布局方式,它的原理就是将高度固定,然后图片的宽度自适应,这样加载出来的图片看起来就像瀑布一样整齐的水流淌下来。那么在pyqt5中我们怎么使用流式布局呢?pyqt没有这个控件,需要我们自己去封装,下面是流式布局的封装代码。class FlowLayout(QLayout):def __init__(self, parent=None, margin=0, spacing=-1):super(FlowLayout, sel

2022-04-22 23:33:47 682

原创 Redis经典面试题总结2022

什么是redisRemote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。redis数据结构字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。

2022-04-22 23:30:27 1151

原创 js数字大写方法

js实现数字大写的方法:capitalMoney(num) {var strOutput = '';var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角';num += '0';var intPos = num.indexOf('.');if (intPos >= 0) {num = num.substring(0, intPos) + num.substr(intPos + 1, 1);}strUnit = strUnit.substr(strUnit.len

2022-04-22 23:26:38 1341

原创 js老生常谈之this,constructor ,prototype

javascript中的this,constructor ,prototype,都是老生常谈的问题,深入理解他们的含义至关重要。在这里,我们再来复习一下吧,温故而知新!thisthis表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window; 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用。 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向。先看一个在全局作用范围内使用this的例子: console.l

2022-04-21 23:38:50 474

原创 分享一个中文字符串和Unicode互转函数及html中获取图片url函数

最近比较纠结。在我面前有两条路,一个是去朋友的创业公司帮忙一起创业,一个是去比较大的公司工作。所以一直没有时间写博客。今天看到一个中文字符串和Unicode互转函数,及html中获取图片url函数还不错,在这里分享一下!中文转unicode函数//中文转unicodefunction unicode(value){ var preStr='\\u'; var cnReg=/[\u0391-\uFFE5]/gm; if(cnReg.test(valu

2022-04-21 23:28:51 292

原创 jquery选择器通配符及事件监听和data用法介绍

今天继续介绍前端中的jquery,在前端中,jquery用的最多,功能也很强大,今天继续对其进行介绍,关于jquery的其他文章,请看jquery今天主要介绍jquery的三块内容:jquery选择器通配符jquery选择器中的通配符经常用到,大致的用法总结如下:$("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");//id属性以code结束的所有input标签 $("input[id*

2022-04-21 23:27:08 1058

原创 javascript使用replace替换动态字符串,replace正则中有变量处理办法

方法一:用eval()处理关于eval(),之前的文章也有过介绍,请看:javascript、js操作json方法总结关于js中json操作的时候提到过!例如下面的一段html<ul class="Hrooms-dashb-list"><li class="Hrooms-warn"><h3 class="Hrooms-title" title="unicorn">unicorn</h3><p class="Hrooms-infor".

2022-04-21 23:23:37 2008

原创 谈谈css的伪类和伪元素

伪类和伪元素的理解官方解释伪类一开始单单只是用来表示一些元素的动态状态,典型的就是链接的各个状态(LVHA)。随后CSS2标准扩展了其概念范围,使其成为了所有逻辑上存在但在文档树中却无须标识的“幽灵”分类。伪元素则代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。我自己的理解:伪类,类,class是一个类,就类似class这样,表示一些元素的状态的,但是无须标识的分类。伪元素,就是一个元素,类似p标签元素,等等,逻辑上存在,但是实际并不存在在文档树中。

2022-04-21 23:20:25 181

原创 jquery对表格行列的操作-jquery动态增加表格行或者列

jquery对表格的操作是老生常谈的问题。最近项目中用到了,今天在这里分享一下!效果大体如下:分享一下代码吧!html<div class="table-responsive" id="Bk_table" style="display:none;"> <table class="table table-hover table-bordered"> <thead>

2022-04-21 23:16:26 2587 1

原创 谈谈CSS层叠及权重

一. 新手的疑问大家经常在网页中看到类似 li#first 这样的选择器。很多新手疑问了?由于使用 id 就已经可以确定元素了,为什么前面还要加一个 li? 直接写上 #first 这样的 id 选择器就可以了。听起来说得不错,简单测试一下也没有问题。可是,我们经常看到带有元素名称的选择器,例如,在微软的项目模板中就有大量的带有元素名称的选择器,如果没有用的话,为什么要这样写呢?哈哈哈,这么写是有原因的,下面就带大家一起看一下!ul#navlist{ float: right;}

2022-04-21 23:10:39 129

原创 jQuery代码开发技巧收集,jquery常用的开发代码

jQuery代码开发技巧收集,jquery常用的开发代码今天分享一个jquery常用的开发代码,大部分是网友总结的,总共60条。后期我也会陆续完善! 把我在开发中常用的写在这里,希望持续关注~~1. 使用siblings()来处理同类元素// Rather than doing this$('#nav li').click(function(){ $('#nav li').removeClass('active'); $(this).addClass('active');}

2022-04-21 22:42:17 846

原创 jquery toggle()设置从上往下滑动,jquery toggle()方向

本文背景很多朋友对jquery toggle()比较熟练,甚至经常用到,而且对toggle的三个参数也比较了解$(selector).toggle(speed,callback,switch)。但是当你设置$(selector).toggle(200),给一个速度的时候,发现toggle是左右滑动的。但是它的参数中没有设置方向的,如何让toggle()上下滑动呢?解决方案假如你对上面的说法比较赞同,那么,说明还对jquery的动画效果不是很熟悉啊!哈哈哈。其实,你翻阅资料,可以看到,jque

2022-04-20 22:32:29 1394

原创 js关闭浏览器事件,js关闭浏览器提示及相关函数

项目背景有时候在用户关闭浏览器的时候,希望给用户一些提示,提示确认了或者其他。有时候需要再关闭浏览器的时候清除cookie进行其他操作等等,需要用到浏览器关闭事件。关于浏览器关闭事件的相关描述有些朋友想在浏览器关闭的时候,弹出alert 、confirm或者prompt等。实验证明,这种做法是失败的,原因是浏览器关闭事件自动屏蔽执行js的某些方法,从而防止恶意攻击或者无法关闭浏览器的现象,针对这些事件的处理,一般都是写在浏览器底层。因此,你想在关闭浏览器的时候弹出alert提示框是不可能的。要是

2022-04-20 22:30:31 9234

原创 js清除浏览器缓存的几种方法

关于浏览器缓存浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。像股票类网站实时更新等,这样的网站是不要缓存的,像有的网站很少更新,有缓存还是比较好的。今天主要介绍清除缓存的几种方法。清理网站缓存的几种方法meta方法//不缓存<META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Co

2022-04-20 22:28:07 15491

原创 jquery常用选择器总结

jquery常用选择器基本选择器 $(‘*’) 匹配页面所有元素 $(‘#id’) id选择器 $(‘.class’) 类选择器 $(‘element’) 标签选择器 组合/层次选择器 $(‘E,F’) 多元素选择器,用”,分隔,同时匹配元素E或元素F $(‘E F’) 后代选择器,用空格分隔,匹配E元素所有的后代(不只是子元素、子元素向下递归)元素F $(E>F) 子元素选择器,用”>”

2022-04-20 22:26:01 249

原创 js网页打印,js打印,javascript局部打印,网页局部打印方法

一、css控制网页局部打印举例:<div class="noprint" > <table style="margin:0 auto;width:500px;"> <tr align="center" ><td> <object id="WebBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0"

2022-04-20 22:21:33 2593 3

原创 网站前端性能优化之javascript和css

之前看过Yahoo团队写的一篇关于网站性能优化的文章,文章是2010年左右写的,虽然有点老,但是很多方面还是很有借鉴意义的。关于css的性能优化,他提到了如下几点:CSS性能优化1、把样式表置于顶部现把样式表放到文档的< head />内部似乎会加快页面的下载速度。这是因为把样式表放到< head />内会使页面有步骤的加载显示。注重性能的前端服务器往往希望页面有秩序地加载。同时,我们也希望浏览器把已经接收到内容尽可能显示出来。这对于拥有较多内容的页面和网速较慢的用户

2022-04-20 22:02:39 578

原创 javascript双等号引起的类型转换,js隐性类型转换步骤

if语句应该是程序员用的比较多的语句,很多时候都要进行if判断,if语句一般用双等号来判断前后两个元素是否是一致的,假如是一致,那么返回是true,然后执行下面的语句,否则,执行别的语句。本问所说的隐性类型的转换,说的是==引起的转换。举个简单的例子,双等号不是全等号,全等号是“===”三个等号,语句"1"==1,那么一般情况下是前面的字符串”1“转换为数字1,然后进行比较。通过这个例子应该了解了什么是隐性类型的转换了吧!隐性类型转换步骤一、首先看双等号前后有没有NaN,如果存在NaN,一律返回fa

2022-04-20 21:59:32 180

原创 html的meta总结,html标签中meta属性使用介绍

meta是html语言head区的一个辅助性标签。也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言,自动刷新并指向新的页面,实现网页转换时的动态效果,控制页面缓冲,网页定级评价,控制网页显示的窗口等!html的meta总结meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。1、name属

2022-04-20 21:55:43 1092

原创 requirejs的用法

一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。<script src="1.js"></script><script src="2.js"></script><script src="3.js"></script><script src="4.

2022-04-20 21:53:08 12025

原创 前端面试题汇总

行内元素和块级元素有哪些?块级元素:div、form、h1-h6、p行内元素:a、img、input、span、textarea什么是闭包?闭包有什么用?闭包就是允许函数访问并操作函数外部的变量,「函数」和「函数内部能访问到的变量」(也叫环境)的总和,就是一个闭包。JavasSript 变量的作用域有全局变量和局部变量。JavasSript函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。闭包的用途闭包常常用来隐藏一个变量(间接访问一个变量),通常闭包访问的

2022-04-20 21:47:34 269

原创 Node.js子流程:如何使用spawn()、exec()、execFile()和fork()

Node.js中的单线程无阻塞性能非常适合单个进程。但是最终,一个CPU中的一个进程不足以处理应用程序不断增加的工作量。无论您的服务器多么强大,一个线程只能支持有限的负载。Node.js在单个线程中运行的事实并不意味着我们不能利用多个进程,当然也不能利用多个计算机。使用多个进程是扩展Node应用程序的最佳方法。Node.js设计用于构建具有多个节点的分布式应用程序。这就是为什么它被命名节点。可伸缩性已植入平台中,您在应用程序的生命周期后期就不会开始考虑它。子进程模块我们可以使用Nod..

2022-04-19 22:35:56 9492

原创 Nodejs自动化构建流程及脚手架搭建

脚手架的工作原理:1.通过命令行交互询问用户问题。2.根据用户回答问题的结果生成文件。首先Node中 inquirer是命令行交互模块,我们需要通过npm/yarn下载inquirer,通过 inquirer模块中的prompt方法 发出对用户的命令行询问。然后inquirer的prompt方法会返回一个promise,然后在then方法中获取到用户输入的 结果,通过Node的fs,path模块,搭配ejs模板引擎,将templates文件夹中的文件 写入根目录。自动化构建工作流:不管是基于gu

2022-04-19 22:33:24 484

原创 nodejs中post请求处理参数

data事件中传入的参数是Buffer,Buffer只是一个二进制的数据,它有可能只是一段字符串数据,也有可能是文件的一部分,所以处理Buffer数据的时候要注意这一点。使用querystring模块去处理buffer数据const http = require('http')const querystring = require('querystring')const server = http.createServer((req, res) => {let bufferArra

2022-04-19 22:29:32 1251

原创 node引入express的路由router

// app.js 首页const express = require('express');const app = express();const bodyParser = require('body-parser');const mysql = require('mysql');const router = require('./router/index') // 引入路由// 开启数据库const connection = mysql.createConnection({

2022-04-19 22:26:09 841

原创 HTML5音视频格式video和audio

html5音频和视频使用详解。一、html5视频以前,大多数视频是通过插件(比如 Flash)来显示的,然而,并非所有浏览器都拥有同样的插件现在,HTML5 规定了一种通过 video 元素来包含视频的标准方法视频格式有哪些:(1)Ogg格式:带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件(2)MPEG4格式:带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件(3)WebM格式:带有 VP8 视频编码和 Vorbis 音频编码

2022-04-19 21:57:06 1155

原创 前端高频JS面试笔试题助你拿到心仪offer

对于前端开发而言,JS可谓是重中之重,是每一个前端人必须掌握的技能,今天就为大家总结下JS相关面试问题,一共32个,都是前端高频面试题,如果你能完全理解后,相信能够让你提升一个质的飞跃,更能助你拿到心仪offer,好了废话不多说,学起来。01.数组扁平化数组扁平化是指将一个多维数组变为一个一维数组。const arr = [1, [2, [3, [4, 5]]], 6];// => [1, 2, 3, 4, 5, 6]方法一:使用flat()const res1 = arr.f

2022-04-18 21:00:29 560

原创 nginx反向代理配置和webpack.devServer

自从出了Cookie的sameSite属性,本地开发跨域联调就很费劲了,为了解决这个问题,我们可以再本地跑一个nginx服务,然后做反向代理,这样就没有跨域了!当然,webpack有自带的跨域机制webpack.devServer,有兴趣的可以去查阅下相关资料一、非框架开发时,配置本地nginx反向代理:先去下载nginx包,然后解压,找到conf文件夹,里边有nginx.conf文件,打开,并修改server配置如下:server {listen 8088;// 前端访问端口ser

2022-04-18 20:58:10 3478

空空如也

空空如也

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

TA关注的人

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