- 博客(73)
- 收藏
- 关注
原创 nginx 反向代理和简单的负载均衡算法
nginx 反向代理和简单的负载均衡算法nginx 安装 (MAC)// 命令行终端运行/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"// 安装 nginxbrew install nginx// 运行 nginxnginx配...
2020-01-09 23:21:27 202
原创 抓包分析 https 密钥协商流程
抓包分析 https 密钥协商流程工具:Wireshark 2.6.6抓取链接:https://220.181.38.150 (*度地址)本机地址:100.81.137.224刚开始分析不知道TLS协议的会话缓存机制,百度使用了会话缓存的这种机制来加速https握手的速度!客户端使用要恢复的会话的会话ID发送“客户端问候”消息。服务器检查其会话缓存中是否有匹配的会话ID。...
2020-01-09 22:35:05 2140 1
原创 react hook 简易实现
摘自:自顶向下学 React 源码<!DOCTYPE html><html lang="en"><head> <title>React App</title></head><body> <div id="root1"></div> <div id="root2"></div> <div id="a"> &
2021-06-14 23:41:18 375 3
原创 js 根据银行卡号 匹配 得到 所属银行名称
如有未涉及到的银行信息,请联系作者更新数据。const BANK_CARD_LIST = [ { bankName: "中国邮政储蓄银行", bankCode: "PSBC", patterns: [{ reg: /^(621096|621098|622150|622151|622181|622188|622199|...
2020-04-28 11:12:23 1923
原创 手机号、银行卡号 格式化 加空格 每四位一空格
xxxxxxxx.replace(/\s/g,'').replace(/(\d{4})(?=\d)/g,"$1 ")
2020-04-22 15:44:10 874
原创 关闭iterm2中对于行数的限制
iTerm2 默认的行数限制,超过 1000 的部分就被隐藏不显示了。处理方式:打开 Preferences窗口,点击 Profiles,右侧点击 Terminal,在 Scrollback line 右边勾选 Ulimited scrollback。...
2020-04-19 23:28:54 13970 1
原创 LeetCode 703. 数据流中的第K大元素 JavaScript
/** * 通过 * @param {number} k * @param {number[]} nums */function swap(arr, i, j) { [arr[i], arr[j]] = [arr[j], arr[i]];}// 调整堆function heapify(arr, len, i) { while (true) { if...
2020-04-12 14:24:38 294
原创 JS判断客户端是否是iOS或者Android
var u = navigator.userAgent;var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端alert('是否是Android:'+i...
2020-03-24 10:41:11 220
原创 写了好多代码,发现写错分支了怎么办
未提交的情况下git add . (把所有改动暂存)git stash (把暂存的文件提交到git的暂存栈)git checkout 本该提交代码的分支git stash pop (将暂存栈中的代码放出来)至于是继续改还是提交就随你了已提交的情况下git checkout 不该提交代码提交了代码的分支git reset HEAD~1 (最近一次提交放回暂存区,...
2020-03-11 18:11:05 3350 2
原创 不小心把 node_modules 文件夹 或 logs 文件夹 或一些开发依赖上传至远程仓库怎么办?
1.找到项目中 .gitignore 文件2.在文件任意添加需要忽略的文件或文件夹node_modules/logs/3.git rm -r node_modules/ --cached 这里如果是文件夹需要 -r 文件则不需要4.git add .5.git commit -m “node_modules 文件夹忽略”6.git push origin xux.zhou...
2020-03-11 18:10:33 739
原创 git 补丁
git add . git commit -m “小程序监控迁移” git log 记录要打补丁的 commit 557d00dc8ff8f5e8cad9922c56f030d399d0e063 git format-patch 557d00dc8ff8f5e8cad9922c56f030d399d0e063 -1 创建 patch 这里的 1 是指作用于一个提交,当然了 2 ...
2020-03-11 18:09:25 159
原创 git 分支重命名
假设分支名称为oldName想要修改为 newName1. 本地分支重命名(还没有推送到远程)git branch -m oldName newName2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)a. 重命名远程分支对应的本地分支git branch -m oldName newNameb. 删除远程分支git push -d origin ...
2020-03-11 18:08:59 160
原创 git stash pop 后冲突
git stash pop 后冲突,冲突后 git stash 中的记录并不会删除。git stash pop 后冲突,git reset --hard 可恢复至 pop 前状态
2020-03-11 18:08:18 1830
原创 git revert 回滚、撤销、反做
比如分支上有 A、B、C、D 四个 commit ,现在发现 B 上面有 bug 需要把 B 上面的代码下掉 我们可以通过 git revert (B版本号) 来对 B 提交做一个取反的操作,比如 B 添加了一行代码 git revert B 之后就会删除 B 添加的这行代码然后 git commit -m "revert B" 提交改操作git push 有冲突的话需要...
2020-03-11 18:07:32 608
原创 git reset
git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。这条命令默认情况下是 -–soft。 执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。使用git status 命令可以在缓冲区中看到这些修改。而如果加上-–hard参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。可以使用 git p...
2020-03-11 18:07:00 258
原创 git 无法与远程其他分支交互问题
起因:项目是通过 git clone XXX —depth=1 仅拉取最后一个版本到本地,导致本地无法查看远程其他分支,也无法向其他分支推送代码解决方案:vim .git/config按照如下示例修改:[core] repositoryformatversion = 0 filemode = true bare = false logallrefupd...
2020-03-11 18:03:55 274
原创 js 手写 Object.is
Object在严格等于的基础上修复了一些特殊情况下的失误,具体来说就是+0和-0,NaN和NaN。function is(x, y) { if (x === y) { //运行到1/x === 1/y的时候x和y都为0,但是1/+0 = +Infinity, 1/-0 = -Infinity, 是不一样的 return x !== 0 || y !== 0...
2020-03-04 21:40:12 474
原创 js 手写 instanceof
function myInstanceof(left, right) { if(typeof left !== 'object' || left == null) { return false } let proto = Object.getPrototypeOf(left); while(proto) { if(proto === ...
2020-03-04 21:22:36 507
原创 css 实现 三角形 梯形
在线调试<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title> <style> div { width: 0; height: 0; border-width: 1...
2020-02-23 20:53:13 270
原创 js 手写 call apply bind
calllet obj = { name: 'xxx'}function sayName(prev) { console.log(prev, this.name)}Function.prototype.myCall = function (context) { context = context || window; let args = [...ar...
2020-02-23 20:22:16 454
原创 js 插入排序 时间复杂度 n^2
// 插入排序 时间复杂度 n^2var arr = [1, 4, 5, 6, 8, 9, 4, 3, 3, 4, 56, 7, 8, 56, 4, 3, 2, 3, 5, 456]for (let i = 2, len = arr.length; i < len; i++) { let k = arr[i] let index = i for (let j...
2020-02-23 16:50:21 267
原创 js 对象模拟 DOM 树 实现 render 方法 调用 render 方法将 js 对象转真正的 DOM 节点
var ul = el('ul', { id: 'list' }, [ el('li', { class: 'item' }, ['item 1']), el('li', { class: 'item' }, ['item 2']), el('li', { class: 'item' }, ['item 3']),])var ulRoot = ul.render();...
2020-02-23 15:15:06 872
原创 js 双向链表 插入 查找
function Node(value) { this.value = value; this.prev = null; this.next = null; return this;}function List() { this.head = new Node(null); this.insert = function(index, node...
2020-02-22 23:30:19 193
原创 js 手写 es6 模板字符串
// ES6 模板字符串let name = "小明";let age = 24;let temp = "hello, 我是 ${ name }, 今年 ${ age} 岁了, 五年以后我 ${age+5} 岁。";function fn(str) { console.log(str) return str.replace(/\$\{(.*?)\}/g, f...
2020-02-22 21:35:41 874
原创 base64相关
Base64图片编码原理:Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’http://gj.3gwen.com/tpbase64.html?kbl=base64 里为什么需要每个 6 位二进制需要...
2020-02-16 22:30:22 159
原创 深度克隆 - 简单版本实现
深度克隆 - 简单版本实现let obj = { age: 5, getAge() { console.log(this.age) }, hobby: [1, 2, 3], home: { city: '北京' }}let obj2 = deepClone(obj)obj2.age = 10;obj2.hob...
2020-01-09 23:19:11 120 1
原创 co generator async await
async awaitcolet fs = require('fs');// let co = require('co');function readFile(filename) { return new Promise(function(resolve,reject) { fs.readFile(filename,'utf8',function(err,data)...
2020-01-09 23:17:56 304
原创 Promise
PromisePromise.jsconst PENDING = 'pending'; //初始态const FULFILLED = 'fulfilled'; // 成功态const REJECTED = 'rejected'; // 成功态function Promise(executor) { let self = this; //先缓存当前promise实例 sel...
2020-01-09 23:14:59 298
原创 事件发布订阅 哨兵函数
事件发布订阅 哨兵函数// 1. 通过事件发布订阅来实现// 这是 node 核心模块中的一个类,通过它可以创建事件发射器的实例,里面有两个核心方法,一个叫 on emit,on 表示注册监听,emit 表示发射事件/* let EventEmitter = require('events')let fs = require('fs')let eve = new EventEmitter...
2020-01-09 23:10:20 280
原创 高阶函数 闭包 延迟函数
高阶函数 闭包 延迟函数/* 1. 在 js 里,函数是一等公民,可以作为函数的返回值,也可以作为函数的参数*//* // 判断一个参数是否是字符串function isString(param) { return Object.prototype.toString.call(param) == '[object String]'}// 判断一个参数是否是数组fun...
2020-01-09 23:08:44 186
原创 Singleton 单例模式
Singleton 单例模式有关单例模式适用性描述如下:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。该唯一的实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。Singleton 单例模式,限制了类的实例化次数只能一次。单例模式,在该实例不存在的情况下,可以通过一个方法创建一个类来实现创建类的新实例;如果实例已经存在,它会简单返回该对象的引...
2020-01-09 23:07:59 218
原创 generator 用法记录
generator 用法记录/* 生成器是一个函数,可以用来生成迭代器 生成器函数和普通函数不一样,普通函数是一旦调用一定会执行完 但是生成器函数中间可以暂停,可以执行一会歇一会*/// 生成器函数有一个特点,需要加个*// 生成器有若干个阶段,如可划分这些阶段嗯?function* go() { console.log(1) // 此处的 b ...
2020-01-09 23:05:35 255
原创 知识点 : session + 持久化
前面是瞎扯,代码在后面。前言http 请求是无状态的,什么是无状态呢,就是你先后向服务器发送两个请求,服务器那边比较糊涂,自己是没有办法识别这两个请求是否是同一个用户发送来的。也就是说,我上一秒给你五毛钱你下一秒就不认账的意思。为了避免这种情况发生,我们告诉服务器,对岸的朋友来的时候,你给他一个签名,告诉他,下次带着签名过来,确认一下是不是对的人。当然,这个签名也是有 有效期 的。...
2020-01-09 22:51:38 1865 1
原创 TCP 三次握手
三次握手SYN (同步序列编号):是 TCP/IP 建立连接时使用的握手信号。TCP 连接的第一个包,非常小的一种数据包。在客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN + ACK 应答表示接收到了这个消息,最后客户机再以 ACK 消息响应。这样在客户机和服务器之间才能建立起可靠的 TCP 连接,数据才可以在客户机和服务器之间传递...
2018-07-16 15:52:42 1346
原创 js原生ajax
AJAX准备工作-服务器环境的搭建ajax可以在本地使用,但是牵扯到不同源问题,需要跨域操作。下面是两个文件的代码,test.html放在桌面上,cors.php放在搭好的服务器上面,我这里配置的端口号是9096,端口号可以自行配置,默认的话是80端口,双击打开test.html文件,控制台会输出下面信息 {"code":200,"msg":"success"}test....
2018-02-26 20:58:41 8700
原创 js中操作cookie
js中操作cookiecookie : 存储数据,可以设置存储时间的,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问电脑上存数据。跟我们的变量一样,不过变量在关闭浏览器的时候会消失,cookie如果设置了到期时间即使关闭浏览器也不会消失。不同的浏览器存放的cookie位置不一样,也是不能通用的cookie的存储是以域名形式进行区分的cookie的数据可以设...
2018-02-25 18:18:46 5266 2
原创 java table jtable 表格 隐藏列
要放在table.setModel(XXXX)后面/** * 隐藏表格中的某一列 * @param table 表格 * @param index 要隐藏的列 的索引 */ public void hideColumn(JTable table,int index){ TableColumn tc= table.getColumnModel().getColumn(i...
2018-02-12 13:06:03 5639
原创 js时间戳转天时分秒
function formatDuring(mss){ var days = parseInt(mss / (1000 * 60 * 60 * 24)); var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = parseInt((mss % (1000
2018-02-02 08:23:28 21014
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人