自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 搭建react16+react-router5+redux+saga的react开发环境

自建react开发环境react16 + react-router5 + redux + saga以下只简要介绍下需要做哪些内容,具体怎么配置就不写了初始化yarn init -y安装webpack4 – 可以用webpack命令愉快打包项目yarn add webpack webpack-cli -D写webpack.cofing.js配置文件安装webpack-de...

2019-07-10 00:20:02 787

原创 redux没有魔法

redux状态管理真得没有任何魔法redux本身没有难度,很清晰第一个难点在于和react集成,也不是难,主要是很多人搞不清楚react-redux和redux的关系异步请求本身有些难点,主要是因为很多人搞不清楚ES6的语法,也不知道中间件的概念,或者更甚都不知道异步。弄清楚基本概念 和react没有半毛钱关系 直接写在html都行文本对象action纯函数reducersto...

2019-07-10 00:18:16 243

原创 JQuery1.12.4实现的基本原理

参考1.12.4版本的JQuery写了个基本实现原理:不得不说JQuery对原型的应用很巧妙。首先讲清楚JQuery的设计目标:用更简单的方式操作DOM 处理浏览器兼容性问题兼容性不讲,主要是各种if else判断,纯属工作量问题。那么JQuery到底是如何实现简单操作DOM的呢?先来看看,JQuery是如何使用的:JQuery是一个函数,调用JQuery函数返回JQuer...

2019-06-26 23:30:42 2171

原创 经典排序

最终实现的效果如下:代码在后面贴出,就只有一个html,直接在浏览器运行代码如下:<!DOCTYPE html><html> <head> <title>经典排序算法</title> <meta charset="utf-8"> <style> .show { d...

2019-06-26 17:21:01 217

原创 简单的函数柯里化

function add(a, b, c, d) { console.log(a, b, c, d) console.log(a + b + c + d) } function createCurry(fn) { const args = [].slice.apply(arguments).slice(1) const argsLen = fn...

2019-06-21 19:44:20 180

原创 带你翻越JS三座大山之一的原型,原型链和继承

JS和Java一样都是面向对象的语言,不同之处在于采取的实现方式不一样,Java采用了基于Class的方式而被人们熟知 JS选用的基于原型的方式就没那么出名了面向对象的三个基本特征是 封装,继承,多态。而其目的就是为了实现代码复用。那么基于原型的面向对象如何实现代码复用呢?首先要知道两点:JS的函数都有一个prototype属性指向一个对象,这个对象就是原型对象 JS的对象都有一...

2019-06-21 00:38:28 191

原创 如何遍历DOM树?数组怎么压缩?

function traverse(node) { var result = []; var nodes = [].slice.apply(node.childNodes); for (let i=0; i<nodes.length; i++) { let n = nodes[i]; if (n.nodeType === 1) { // 元素节点 ...

2019-03-28 17:42:58 415

原创 浏览器缓存

浏览器缓存对于用户来说是个好东西,但是在开发过程中就比较烦了,如果不注意,很容易就让浏览器走了缓存,让自己误以为自己的代码没起作用。所以对于一个合格的前端开发来说,有必要掌握浏览器的缓存机制,减少开发过程中采坑的可能性。我还是一如既往的实践派,先用express做一个简单的服务器来看看效果。const express = require('express');const app =...

2019-03-27 19:33:14 143

转载 React梳理

转自:https://www.zhihu.com/question/47686258/answer/107209140虽然原作者的废话挺多的,但是耐心看下去,还是很有收获的。一、引子这是关于一把玄铁重剑,一本经书,和一套轻功步法的故事。让我们先从普通程序猿们的日常工作内容说起,一般来说,程序猿们大部分时间关注的可能不是研发某个具体算法,这是算法工程师/数学家们擅长的东东。程...

2019-03-26 18:58:14 265

原创 @babel/polyfill的使用

@babel/polyfill使用的坑还是比较多的:最需要理解的是,babel只会转换E6语法,而不会转换新的api,让新的api生效的方法是使用传统的polyfill,为此需要引入这个模块 安装的时候必须用 --save 保证引用到生产环境而不是开发环境,当然,弄错了,自己手动在package.json中修改也是可以的。 浏览器环境下使用,用script标签引用模块下的polyfill....

2019-03-26 09:22:14 11934 1

原创 利用h5 canvas画布操作图片

canvs画布可以直接获取到图像数据,从而进行图像操作,原理很简单,但是实现起来还是会有很多坑。1.本地图片的协议为file://且域名为空,因此在canvs中获取getImageData时会出现跨域问题解决方法:讲图片和网页都放到同一个服务器上即可。可以自己用spring boot快速搭建一个服务器。不过最简单的还是用nginx做一个静态资源服务器。2.想要动态改变canvas画布,...

2019-03-23 10:08:56 1194

原创 一文完全理解JS原型链,实现完美继承

全文没有废话,需字斟句酌需要理解的两个重要概念原型链只是js搜索对象属性的机制,和继承没有本质上的关系,你需要先掌握js是如何在原型链是如何搜索对象属性的 继承的本质是复用父对象的属性,而这些属性分为两类:实例属性和原型属性(位于原型链上的属性)继承的最终目标:子对象的实例属性包括:父对象的实例属性+子对象自定义的实例属性子对象的原型属性:父原型的属性(__proto__和co...

2019-03-17 11:23:43 254

原创 前端环境安装

使用vue-cli快速搭建脚手架的过程中,会涉及各式各样的工具,本文仅记录下来每个工具的作用。Node.js是基于Chrome V8引擎的JavaScript运行环境,为JavaScript提供了服务端运行的能力。windows上安装:从官网下载安装文件 使用安装文件安装,默认会选中安装npm并且会添加PATH路径安装完成后:node.js会安装在自选的目录下 npm默认...

2019-02-26 14:45:12 8308

原创 Vue.js官网教程梳理

Vue.js的官网教程很详细,这里做一个关键点梳理,方便查阅。基础:Vue实例:创建一个Vue实例 只有当实例被创建时 data 中存在的属性才是响应式的 Vue实例自带有$开头的实例属性和方法 Vue还有生命周期钩子函数,就是生命周期各个阶段会执行的函数模板语法:Vue.js模板都是合法的html 插值(把Vue实例中的值插入的html中) 这个值可以是文本 原始HTM...

2019-02-17 22:10:20 656

原创 Node.js由简入繁

 目标是由最简单的东西开始,一步一步理清楚Node.js的MVC架构的一般骨架。一,模块1.创建模块//first.jsvar s = 'Hello';function greet(name){ console.log(s + ',' + name + '!');}//把模块中需要对外提供的功能暴露出去module.exports = { greet: gree...

2019-02-14 09:02:05 203

原创 java高精度

关于java里的大整数,高精度数怎么使用的板子。题目详见acwing 114大整数用BigInteger 高精度用BigDecimal。包括加减乘除,各种对结果取整方式等。 熟悉了之后,用起来还是很方便的。import java.util.Scanner;import java.util.Arrays;import java.math.BigDecimal;import j...

2019-02-07 22:37:24 498

原创 JavaScript-06

PS:关于JS的学习,暂时就告一段落了。临近新年,杂事很多。JQuery:之前只知道JQuery是JavaScript框架,就是简化了操作DOM。理解得比较片面。事实上使用JQuery除了简单还有其他的好处:消除浏览器差异:你不需要自己写冗长的代码来针对不同的浏览器来绑定事件,编写AJAX等代码; 轻松实现动画、修改CSS等各种操作。既然如此,那么JavaScript能做的,JQu...

2019-01-27 12:36:28 293

原创 JavaScript-05

新特性:ES6:Promise:Promise是一种异步编程的解决方案,我们一直在使用的异步编程的解决方案是:事件+回调函数。这种做法不是不行,只是Promise更加方便而已。先看代码,知道怎么做,再去探究为什么这样做可以。这是我比较喜欢的学习方式。//创建Promise对象var promise = new Promise(function(resolve, reject...

2019-01-26 10:46:57 194

原创 JavaScript-04

新特性:设置原型:前一篇有一点没有说的是:__proto__并不是ECMAScript标准,尽管有很多浏览器实现了这个属性。ES5的时候引入了Object.create():var a = {a: 1}; // a ---&gt; Object.prototype ---&gt; nullvar b = Object.create(a); // b ---&gt;...

2019-01-25 13:19:05 168 1

原创 JavaScript-03

日期类:var d = new Date();d //Thu Jan 24 2019 19:44:27 GMT+0800 (中国标准时间)d.getFullYear(); //2019d.getMonth(); //0 //月份从0开始 反人类d.getDate(); //24d.getHours(); //19d.getMinute...

2019-01-24 23:45:57 132

原创 JavaScript-02

ES6:...rest: 可变参数arguments的方式虽然想法简单,但是用起来还是比较麻烦的,所以引入了...rest参数,rest是一个数组,如果多传了值,多的值就组成了rest数组,如果没有那么rest并不是undefined而是[]空数组。可以想到rest数组实现非常简单 就是做个装饰类把arguments多余的封装进[]。function abs(x, ...rest){...

2019-01-23 12:04:47 130

原创 JavaScript-01

EMCA(European Computer Manufacturers Association) 欧洲计算机制造商协会EMCAScript,是JavaScript语言的标准,JavaScript可以看作是EMCAScript的实现(虽然是现有JS后有ES)EMCA会在每年的6月份正式发布一次规范的修订,而这次的发布也将作为当年的正式版本。以后的改动基于上一版本进行修改。ES6是15年...

2019-01-22 21:22:29 142

原创 java Object的equals和hashcode

equals和hashcode是Object的方法。因此每个类都具有这两个方法。这里直说当我们自定义对象后需要把对象放进集合中时,这两个方法如何工作。import java.util.HashSet;import java.util.Set;public class test { static class rel{ int x; int y; rel(int x,...

2019-01-20 12:06:53 181

原创 实体类循环引用的解决

做orm映射的时候, 因为表之间的各种关系,常常会出现两个实体类之间相互引用。有三点内容需要考虑,相互引用出现在实体类之间 只要不滥用 就不会出现无限递归的情况,当然一不注意也很容易无限递归。 @ManyToOne和@OneToMany在一对关系中同时出现,那么从数据库中查数据也就orm的时候,是不会出现无限递归的,理由和第一条一样只是在两个实体类之间做了循环引用。所以可以推断出,orm...

2019-01-19 12:16:39 2542

原创 关于Java ArrayList

每次刷题,都被这个东西坑,很烦,特此记录。int[] 转 List&lt;Integer&gt; 转不了 需要Integer[] 转 List&lt;Integer&gt;。 直接用int[] 转过去 是List&lt;int[]&gt;。Integer[] a = {1,2,3};List&lt;List&lt;Integer&gt;&gt; rs = new ArrayList&l...

2019-01-17 11:12:22 101

原创 LRU算法

LRU是内存置换算法中的最近最少使用算法,原理如下:可以看到LRU的原理很简单,但是实现起来就不简单了。leetcode 146题要求设计一个插入页面和获取页面都是O(1)的算法 这个其实就不容易了。如果不考虑效率,直接用单链表实现很简单,事件复杂度get为O(n) put也为O(n)。为了提高效率,用双向链表+hashMap的方法。 class LRUCache {...

2019-01-14 18:35:43 828

原创 java原码 反码 补码解释

起因:今天碰到这样一道题目,求a的b次方。思路很简单,就是用快速幂。但是测试用例中有这样一个:a=2, b=-2147483648.  代码中我直接用了Math.abs()取了绝对值,这个用例就过不去。看了源码: /** * Returns the absolute value of an {@code int} value. * If the a...

2019-01-12 11:14:53 470

原创 SpringBoot

接下来一段时间除了每天刷刷题,打算学习使用SpringBoot开发一个web项目。本篇博客和之前的python实战是一个目的,仅为记录下我开发过程中遇到的问题和解决方案。 一,使用技术后端:使用springboot开发确实会快很多,maven把需要的jar包全导入,只用写一个配置文件application.properties即可。这个配置只需要很少的配置 不需要像SSM那样写...

2019-01-11 00:03:27 189

原创 机器学习总结

有监督学习:线性回归:线性拟合 预测朴素贝叶斯:分类逻辑回归:二分类(可做多分类)决策树:分类和预测SVM:二分类(可做多分类)SVR:非线性拟合 预测HMM(隐马尔可夫模型):语音识别CRF(条件随机场):一般是线性链CRF 自然语言处理中 文本序列标注KNN:分类 预测无监督学习:KMeans:聚类 需指定K谱聚类:聚类 无需指定K 能保证每个簇...

2019-01-05 23:33:50 238

原创 贝叶斯公式

先验概率:根据以往的经验和分析得到的概率后验概率:在考虑了一个事实之后的条件概率贝叶斯公式:就是先验概率和后验概率的关系。关于贝叶斯公式的推导:AB同时发生 可以有两种考虑 在A发生的前提下B也发生了 在B发生的前提下A也发生了 P(AB) = P(A)P(B|A) = P(B)P(A|B)  这里P(A) P(B) 就是先验概率关于贝叶斯公式的一般形式,A分为(A1, A...

2019-01-04 16:40:12 279

转载 DevOps

一分钟告诉你究竟DevOps是什么鬼?历史回顾为了能够更好的理解什么是DevOps,我们很有必要对当时还只有程序员(此前还没有派生出开发者,前台工程师,后台工程师之类)这个称号存在的历史进行一下回顾。如编程之道中所言:老一辈的程序员是神秘且深奥的。我们没法揣摩他们的想法,我们所能做的只是描述一下他们的表象。清醒的像一只游过水面的狐狸警惕的像一位战场上的将军友善的像一...

2019-01-01 21:33:08 132

转载 WebService的两种方式SOAP和REST

转载 原文:https://www.cnblogs.com/fcfblog/p/5830205.html想要弄清楚REST究竟是什么。于是找到了这篇文章,算是给我成功解惑了。先说我的结论:REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释。(REST思想的出处正式HTTP协议的制定者,这样就能理解这一句话了)。 但是由于REST只是一种基于Http协议实现...

2018-12-30 18:59:50 300

转载 http协议无状态中的 "状态" 到底指的是什么?!

转载 原文:https://www.cnblogs.com/bellkosmos/p/5237146.html先说一下我的结论:由于HTTP协议是一种无状态协议,而服务器要跟踪用户状态,就只能通过cookie实现。大多数Web框架提供了Session功能来封装保存用户状态的cookie。引子:最近在好好了解http,发现对介绍http的第一句话【http协议是无状态的,无连接的】就...

2018-12-30 18:39:34 155

原创 python实战笔记

本片博客仅用于记录开发个人博客中的心得体会。目标:使用aiohttp, aiomysql开发异步服务器。aiohttp中文文档第一阶段:开发orm框架orm框架的作用就是直接在代码中对对象进行操作,映射到数据库的操作,这样就屏蔽了数据库操作的具体细节。相当于hibernate的作用。第一步:使用了aiohttp那么所有的I/O都要用异步技术,数据库也不例外,要用aiomys...

2018-12-29 12:45:13 169

转载 import产生的 __name__和__pycache__

源起:刚才提交代码的时候,发现项目下多了一个__pycache__文件夹,就想知道怎么来的,查了一下,觉得这篇写的很好。转一下。模块的调用Python中导入模块时,实际上会把被导入的模块执行一遍,如下: 先看被调用的模块test.py:def haha():    print("哈哈")haha()1234再看主程序main.py:import testpr...

2018-12-29 09:47:13 124

原创 python异步I/O

一,python使用协程消费者不用多说,会停在yield这里。之前只知道当调用next()时,会继续执行。到了协程这里,当调用了send(msg)时,这个生成器会收到这个msg并继续执行。yield 如果带上了r,又会把r返回给调用了send(msg)的人。def consumer(): r = '' while True: n = yield r ...

2018-12-28 15:32:53 311

原创 python Web开发

目录本文参考自廖雪峰老师的python教程,旨在理清用python做web开发的思路。一,HTTP二,请求一个网页的流程三,WSGI四,Web框架五,模板六,总结一,HTTPhttp get请求格式:GET /path HTTP/1.1Header1: Value1Header2: Value2Header3: Value3http post请求...

2018-12-27 17:50:04 10889 1

原创 python使用SQLite,MySQL,SQLAlchemy

SQLite: 轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用MySQL: 为服务端设计的数据库,能承受高并发一,SQLitepython内置了c写的很小的嵌入式数据库SQLite,使用方法也很简单,因为其数据库就是一个文件,所以获取connection之后,再紧接着获取游标cursor而不是session。例子,这里为了简化,突出重点,没有使用try...except....

2018-12-27 13:39:56 876

转载 如何优雅地终止python线程

前言 · 零我们知道,在python里面要终止一个线程,常规的做法就是设置/检查 ---&gt;标志或者锁方式来实现的。这种方式好不好呢?应该是不大好的!因为在所有的程序语言里面,突然地终止一个线程,这无论如何都不是一个好的设计模式。同时有些情况下更甚,比如:线程打开一个必须合理关闭的临界资源时,比如打开一个可读可写的文件; 线程已经创建了好几个其他的线程,这些线程也是需...

2018-12-27 00:05:53 20243 1

原创 python网络编程

一,概念Internet:是连接网络的网络,任何网络只要支持Internet就可以接入Internet。IP:每张网卡都有一个固定的32位网络地址IPv4。IP包:在两个IP之间传递的数据包,不保证送达,不按顺序。TCP:保证IP包送达,保证顺序,并且具体到是IP中哪两个进程再通信。Socket: 代表一个连接 需要确定四个东西: 服务器ip+服务器port + 客户端ip+客...

2018-12-27 00:03:53 202

空空如也

空空如也

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

TA关注的人

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