自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java之基于UDP协议创建一个聊天室

UDP: 用户数据报协议(User Datagram Protocol) UDP是无连接通信协议,即在数据传输时,数据的发动端和接收端不建立逻辑连接。简单来说,当一台计算机向另一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否接受到数据。由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频,视频和普通数据的传输 使用UDP协议传输数据时,由于UDP面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使

2021-12-01 21:43:49 629

原创 java之递归搜索本地磁盘

递归是什么递归是指函数的定义中函数使用自身方法。即自己调用自己例如下面:// 求5的阶乘5! int sum = 1; for (int i = 1; i <= 5; i++) { sum = sum * i; } System.out.println(sum);我们通常会用到for循环,而在使用递归的时候,我们就可以很方便的写出结果例如// 求5! public static int recurve(int i) {

2021-11-30 21:22:06 538

原创 vscode配置java运行时环境

1. 下载JDK2. 找到设置一栏搜索java.home点击 在settings.json中编辑在JSON中加上// 配置java环境 "java.home": "D:\\java17", "java.configuration.runtimes": [ { "name": "JavaSE-1.8", "path": "D:\\jdk8", "default": true } ]...

2021-11-28 13:41:58 3698

原创 (java)使用createNewFile提示系统找不到指定路径

出现这种情况,可以使用如下方法public class Test { public static void main(String[] args) throws IOException { File file = new File("mydir\\a.txt"); // 先判断要创建的文件是否存在 if (!file.exists()) { // 判断路径是否存在 File path = new File("mydir"); if ...

2021-11-28 12:17:28 4667

原创 JavaScript之this

JavaScript令人头疼的this指向

2021-11-17 20:45:12 1716 2

原创 python list.copy方法

当我们想复制两个一模一样的列表时,我们可能使用到list.copy()这个方法,这个方法可以让我们复制一个相同的数组,当遇到下面这种情况时,可能会遇到一些问题# _*_coding='utf8'_*_nameList = [1, 2, 3, 4, 5]nameList1 = nameList.copy()nameList[1] = 55print(nameList, nameList1)此时打印出nameList和nameList1时,两个列表的元素是下面这样[1, 55, 3, 4

2021-08-21 23:09:57 3149

原创 (HTML)浏览器将多个空格压缩为一个空格

前言今天在做项目的时候,突然发现一个问题,浏览器输出的数据跟我原本的数据不一致,原本有多个空格,浏览器将多个空格压缩为一个。代码示例浏览器输出控制台打印我们明显可以看到,浏览器将多个空格合并为一个空格了。这是因为我们在编写HTML的时候,会有一个默认属性:white-space:normal;white-space:normal;在CSS中表示,合并空白字符,允许自动换行。同样的white-space还有其他几个属性:nowrap:表示合并空白字符,不允...

2021-08-07 16:38:43 2815

原创 JavaScript使用drag事件

前言复习JS时突然想到drag事件,便想尝试。开始我的代码是这样<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title> <style> .dragger { width: 100px; height: 100px; line-height: 100px; text-align: center;

2021-08-04 16:16:54 635

原创 Vue自定义组件使用事件修饰符

前言今天在使用自写组件时,突然遇到久违的冒泡事件,就想着使用Vue自带的事件修饰符(.stop),本以为可以就此解决冒泡,却遇到这个问题。脑中一片问号????这是什么鬼,我是按照Vue文档写的啊(吐血)于是,我开始踏上了解决错误的路程程序员常规操作:打开浏览器–百度/谷歌搜一搜,发现搜出来的东西不少,没一个是能解决我的问题的答案,没办法Vue文档走起!!!!看了至少几十遍Vue文档的我,自以为没有看漏什么东西,确信Vue文档也没有解决这种问题的答案,苦苦寻找,来到这里嗯?这个event.s

2021-05-21 23:27:18 623 1

原创 css overflow:auto失效

overflow:auto失效overflow:auto需要配合width/height使用才能生效

2021-05-21 10:11:44 665

原创 Vue v-if和v-show对于$emit的影响

因为$emit需要接受一个组件的事件然后触发,所以组件必须存在,v-if如果设置了false,则表示组件不存在,会报错如果是v-show,会将组件display:block;组件数据可能获取不到,会触发意向不到的错误。解决这些问题的方法就是将变量初始值设置位true,然后在修改为false或者其他状态...

2021-02-20 02:37:37 429

原创 自定义指令在何时触发

自定义指令因为需要应用到元素上面,所以触发于mounted

2021-02-20 01:39:31 354

原创 animation动画完成时抖动问题

给触发动画的元素添加一下CSS属性-webkit-backface-visibility: hidden;-moz-backface-visibility: hidden;-ms-backface-visibility: hidden;backface-visibility: hidden;

2021-01-30 21:48:50 1064

原创 (JS)随机生成一个N*N的矩阵,找出鞍点

随机生成一个N*N的矩阵,找出鞍点鞍点:行中最大的数,列中最小的数例如:[[1,9,4],[8,2,5],[7,6,3]] 不存在鞍点[[1,2,3],[4,5,6],[7,8,9]]鞍点为3步骤let arr = [ [1, 9, 4], [8, 2, 5], [7, 6, 3] ]; let arr2 = [ [1, 2, 3], [4, 5, 6], [7,

2021-01-26 21:47:38 1265 2

原创 CSS画图形

空心扇形.cirlc { width: 100px; height: 100px; border-radius: 50%; border-top: 100px solid red; border-bottom: 100px solid transparent; border-left: 100px solid transparent; border-right: 100px solid t.

2020-12-14 22:04:36 308

原创 (JS)节流与防抖

节流(throttle) function throttle(fn, delay = 500) { if ((typeof fn) !== "function") { throw new Error(`${fn} not a function,you hvae to pass in a function `); } if ((typeof delay) !== "number") { throw new Err

2020-11-26 21:05:59 70

原创 webpack配置踩坑记(一),style-loader失效

配置webpack时,使用style-loader时候,发现没有将样式添加到head中。开始我的配置如下:const path = require("path");const VueLoaderPlugin = require("vue-loader/lib/plugin-webpack4");const webpack = require("webpack");const htmlWebpackPlugin = require("html-webpack-plugin");module.exp

2020-11-19 18:11:12 1928

原创 (JS)闭包

什么是闭包?定义:闭包就是一个能调用另一个函数的变量的函数。 function closure() { count = 1; return function() { return count++; }}闭包的作用在全局作用域中能访问局部变量让局部变量一直保存在内存中闭包缺点由于变量会长期保存在内存中,所以会增大内存使用量,如果使用不当,可能会造成内存泄漏。变量或参数不会被JS垃圾回收机制清除...

2020-10-25 13:48:28 58

原创 (JS)如何修改函数名不影响递归调用

什么是递归?一种特殊的嵌套调用函数自己调用自己或者调用其他函数后再次调用自己只要是函数之间产生循环一定是递归调用以斐波拉契数列为例斐波拉契数列:1,1,2,3,5,8,13,21,34…斐波拉契数列函数:非递归: function fibonacci(n) { let a = 1, b = 1, temp = 0; if(n<2) { return 1; } for (var i = 3; i &.

2020-10-24 16:09:01 767

原创 (JS)创建10个a标签,点击输出相应序号

let a,fragment = document.createDocumentFragment(); for(var i = 0; i < 10; i++) { a = document.createElement("a"); a.innerHTML = i; a.index = i; a.onclick = function(e) { alert(e.target.index) } fragment.appendChild(a)...

2020-10-23 13:40:58 343

原创 (JS)筛选出对象中value大于2的key

var obj = { "a":1, "b":2, "c":3, "d":4, "e":5, "f":6 } let c = Object.values(obj); let key = Object.keys(obj); let x = key.filter(item=>{ return obj[item]>2; });

2020-10-23 13:34:48 926

原创 (JS)模仿indexOf方法寻找字符串中某个字符的位置

function indexof(str,target) { let result = str.match(target); return result? result.index:-1; }

2020-10-22 22:01:00 257

原创 (JS)数组去除重复

使用new Set()var arr = [1,2,3,4,5,5,4,3,2,11,3,22,11,11,22]; let c = new Set(arr); new Set()方法可以将所有不重复的值添加到新的Set中,然后返回使用fliter()方法var arr = [1,2,3,4,5,5,4,3,2,11,3,22,11,11,22];let x = arr.filter(function(val,index),array) { return array.index.

2020-10-22 19:34:07 313

原创 (Vue)使用<transition>标签对元素使用过渡失效

<transition name="move"> <div class="btn" v-if="regOrlog" key="regist"> <input type="button" value="注册" class="reg-btn" @click="userRegist"> </div> <div class="btn" v-else> <input type="button" .

2020-09-26 12:07:48 1678

原创 (Vue)自定义指令

全局自定义指令Vue.directive(name,options)局部自定义指令directives:{name:{inserted:function() {}}}应用在模板上使用v-name钩子函数bind:在执行第一次绑定时调用,只调用一次inserted:元素插入到父节点时调用update:所有组件的VNode更新时调用,可能在子VNode更新前调用componentUpdated:指令所在组件的VNode及其子VNode全部更新后调用unbind:只调用一次,指令与

2020-08-28 15:29:59 91

原创 (Vue)mixin使用及注意问题

mixin使用时需要创建一个对象,对象内部可以使用与组件相同的属性及方法。注意:mixin使用时,组件数据高于mixin,组件数据和mixin数据如果有重复,组件数据将会覆盖mixin数据mixin内的方法会与组件自身钩子函数合并为一个数组,并且mixin的方法会在组件自身方法之前执行在methods,components,directives对象方法中,如果有相同的方法,则会用组件自身的方法覆盖mixin方法。并在最后合并为同一个对象...

2020-08-28 14:26:19 1102

原创 (JS)模仿一个instanceof方法

(JS)模仿一个instanceof方法let instanceOf = function(a,b) { let p = a; while(p) { if(p === b.prototype) { return true; } p= p.__proto__; } return false;}

2020-08-15 20:50:09 240

原创 (JS)isNaN()方法判断undefined为true的原因

使用isNaN()判断是不是NaN时,此方法会使用Number()方法做一个转换,任何非数字都会被强制类型转换,undefined被转换后为NaN,所以显示trueconsole.log(isNaN(undefined)) //trueisNaN()转换时除了null和数组类型会被转为数字0之外,其余非数字类型的皆会被转为NaN字符串console.log(isNaN("qigeyu")) //true对象console.log(isNaN({})) //true...

2020-08-13 18:02:15 1562

原创 (JS)数组排平(flat)

如果只有一层嵌套数组情况Array.prototype.concat.apply([], arr)或[].concat(arr)或Array.prototype.concat.call([], arr[0],arr[1]...)如果有多层嵌套function flat(arr) { //判断是否有多层数组 const isDeep = arr.some(item => { return item instanceof Array; }.

2020-08-10 18:45:12 289

原创 (JS)捕获错误(异常)

使用try …cathtry{ //todo}catch(ex) { throw new Error(ex);}finally { //todo}使用window捕获 window.onerror = function(message, source, linenum, colnum, error) { //todo // 对于跨域的JS,不会有详细报错信息 // 对于压缩的JS,需要配合sourceMap反查到未压缩代码行}...

2020-08-10 17:25:56 312

原创 (JS)数组方法:slice和splice

Array.slice(start,end)拷贝数组,如果不指定start和end则表示拷贝整个数组,如果只指定start则拷贝从start到数组末尾,如果start和end都指定,则拷贝start到end-1,。此操作不会改变源数组let arr = [1,2,3,4];console.log(arr.slice(-1)) //[4]当start<end时,会返回一个空数组,当start为负数时,从数组末尾开始计算2. Array.splice(start,count,value).

2020-08-09 18:23:34 121

原创 (JS)数组中纯函数

不改变源数组(没有副作用)返回一个数组Arrat.concat(value)合并数组并返回一个新数组,不对原数组做改变(与push相似,在数组末尾添加value) let array = [1,2,3,4,5]; let x = array.concat([10,20]) console.log(x) // [1,2,3,4,5,10,20]Array.map(function)遍历数组,如果return出数组值,将成为一个新数组,如果使用判断,则不符合条件的返回false.

2020-08-09 17:42:33 530

原创 (JS)数组的 pop、push、unshift、shift分别是什么?

Array.pop()移除数组的最后一项,并返回移除项 let array = [1,2,3,4,5]; let x = array.pop(); console.log(x) //5Array.push(value)在数组末尾添加一项并返回新数组长度value可以是任何类型 let array = [1,2,3,4,5]; let y = array.push(66) console.log(y) //6Array.shift()移除数组首项,并返回移除项 let.

2020-08-09 17:21:42 358

原创 (JS)手写深比较

//深比较function isObject(obj) { return typeof obj==="object" ? true : false;}function isEqual(obj1,obj2) { if(!isObject(obj1) || !isObject(obj2)) { return obj1 === obj2; } if(obj1 === obj2) { return true; } // 取出obj1和obj2的key const obj1Keys = O

2020-08-09 16:43:27 146

原创 (JS)手写bind函数

(JS)手写bind函数Function.prototype.binds = function() { // 将参数解析为数组 const args = Array.prototype.slice.call(arguments); // 取出数组第一项,其余的为参数(同时获取this) const t = args.shift(); const self = this; return function() { return self.apply(t,args) }}...

2020-08-03 17:33:27 211

原创 (JS)手写深拷贝

JS手写深拷贝const obj1 = { age: 20, name: "xxx", address: { city: "earth" }};/** * * @param obj {Object} */function deepClone(obj = {}) { if (typeof obj !== "object" || obj == null) { return obj; } let result; if (obj instanceof Array) { r

2020-08-02 20:07:26 425

原创 (JS)职责链模式

(JS)职责链模式一步操作分为多个角色来完成将角色分开,使用一个链串起来class Action { constructor(name) { this.name = name; this.nextAction = null; } setNextAction(action) { this.nextAction = action; } handle() { console.log(`${this.name}审批`); if (this.nextAction != nu

2020-07-27 16:40:12 100

原创 (JS)状态模式

(JS)状态模式每次状态变化都会触发逻辑不能总是使用if…else判断class State { constructor(color) { this.color = color; } handle() { console.log(`turn to ${this.color} light`); context.setState(this); }}class Context { constructor() { this.state = null; } getS

2020-07-26 16:46:44 145

原创 (JS)迭代器模式

(JS)迭代器模式顺序访问一个集合使用者无需知道集合内部的结构class Iterator { constructor(container) { this.list = container.list; this.index = 0; } next() { if(this.hasNext()) { return this.list[this.index++]; } return null; } hasNext() { if(this.index>=this.

2020-07-26 13:50:38 97

原创 (JS)观察者模式

(JS)观察者模式一对多发布&订阅class Subject { constructor() { this.state = 0; this.observers = []; } getState() { return this.state; } setState(state) { this.state = state; this.notifyAllObservers(); } // 触发每一个Observer的update()方法 notifyAllO

2020-07-26 08:38:17 117

空空如也

空空如也

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

TA关注的人

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