自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 node.js实现markdowm转换成HTML

使用到的第三方包介绍marked包 https://www.npmjs.com/package/marked 功能是将markdown文本内容转换成HTML代码 例如:var marked = require('marked');console.log(marked('I am using __markdown__.'));// Outputs: I am using mark

2018-01-24 17:02:04 1704 1

原创 函数柯里化的几个例子

函数柯里化 用于创建一个已经设置好了一个或或者多个参数的函数通用写法如下:function curry(fn){ var args = Array.prototype.slice.call(arguments, 1); return function(){ var innerArgs = Array.prototype.slice.call(arguments); va

2017-09-30 15:58:22 1062

原创 javascript实现图的广度优先搜索、深度优先搜素

用邻接表表示图:如下图所示的图: 用邻接表二维数组表示为:adj[0] = [1,2,5,6];adj[1] = [0,3,8,9];adj[2] = [0,4];adj[3] = [1];adj[4] = [2];adj[5] = [0,7];adj[6] = [0];adj[7] = [5];adj[8] = [1];adj[9] = [1]构建图类: functi

2017-09-11 20:51:48 1757

原创 初识模块化AMD和require.js

如何书写模块一、函数写法 function m1(){ //... } function m2(){ //... }函数m1和m2就是两个最原始的模块;但是它的缺点是,函数名高度暴露,污染了全局变量。二、对象写法var module = new Object({ m1: function(){ //...

2017-06-19 21:13:10 945

原创 初次使用MongoDB和mongoose

MongoDB和mongoose mongoose 是个 odm。odm 的概念对应 sql 中的 orm。也就是 ruby on rails 中的 activerecord 那一层。orm 全称是 Object-Relational Mapping,对象关系映射;而 odm 是 Object-Document Mapping,对象文档映射。它的作用就是,在程序代码中,定义一下...

2018-08-25 16:06:13 568

原创 网络资源直接转存到七牛云对象存储

首先安装qiniu的npm包npm install qiniu –save 设置鉴权对象const qiniu = require('qiniu')// ak和sk分别可以在七牛云个人中心查看const accessKey = '***zs1z8SfbXLuntI***'const secretKey = '***BJYJ1lkWOAJcp***'// 鉴权对象macc...

2018-08-23 22:28:59 1997

原创 深入理解Promise对象

const testPath = path.join(__dirname, 'test.txt')const readFileAsync = new Promise((resolve, reject) => { const data = readFile(testPath, 'utf8', (data, err) => { if (data) resolve(data)...

2018-08-21 21:18:11 265

原创 记录常用Node工具包

silly-datetime时间格式转换https://www.npmjs.com/package/silly-datetime formidable文件post上传https://www.npmjs.com/package/formidable browser-sync浏览器自动刷新http://www.browsersync.cn/ body-parser post请求内容解析https://

2018-01-29 17:22:53 425

原创 node.js表单处理和文件上传

一、get请求表单提交HTMLhtml>head> meta charset="utf-8"> title>表单提交title>head>body> form action="http://127.0.0.1:2080/" method="GET"> input type="text" name="name">br> input ty

2018-01-25 17:04:27 3301

原创 用node.js实现require.js

require.js的主要作用是js的工程化,规范化:1)它是一个js脚本的加载器,它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染和其后的脚本的执行。并提供了在加载完成之后的执行相应回调函数的功能;2)它要求js脚本的模块化,也就是文件化;require.js的作用之一就是加载js模块,也就是js文件。所以我

2018-01-23 15:49:45 606

原创 利用node之socket搭建简单聊天室

一、理解socketsocket是client和server进行连接,消息传送的桥梁; 二、 node中server的socketnode通过net.createServer((socket) => {})创建server,其中回调函数的参数为socket,建立连接后即可使用socket;const net = require('net');//创建一个sock

2018-01-22 11:36:38 607 1

原创 node.js应用场景分析

node.js是什么? node.js is a javascript runtime built on Chrome’s V8 node.js 是一个运行时,并不是一个语言 node.js的两个特性:事件驱动、非阻塞I/O模型 非阻塞I/O阻塞I/O: I/O时,进程休眠,等待I/O完成后进行下一步; 以读读取磁盘上的一段文件为例子,系统内核在完成磁盘寻找轨道、读

2017-11-14 14:59:56 817

原创 初识java多线程

一、创建多线程的方法一:创建java.lang.Thread的子类,重写该类的run方法基本用法例子:public class ThreadTest1 { public static void main(String[] args) { // TODO Auto-generated method stub // 1、创建一个线程对象 Thread

2017-10-23 19:47:35 237

原创 记录前端面试

2017.10.19前端开发时间:45分钟方式:视频主要问题: 1、实习中,你的工作是哪些,你实现的功能? 2、巡更管理系统中,你遇到了哪些问题,设计了哪些插件,怎么实现的? 3、vue框架,子元素向父元素传递信息,孙子元素向父元素传递信息的实现; 4、jQuery的项目做vue项目的重构怎么做? 5、bootstrap框架的实现原理 6、em、rem单位是什么 7、百分号可以设

2017-10-19 15:14:56 272

原创 java异常处理

什么是异常? 异常就是表示阻止执行正常进行的错误或者情况 try-catch语句import java.util.Scanner;public class Quotient { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = n

2017-10-18 12:31:56 440

原创 多态

写在前面的话最近在找工作的时候,觉得应该把编程原理性,基础性的知识学的扎实一点,所以系统的学了一下设计模式,主要参考书籍是:《javascript设计模式与开发实践》,写下博客是对书中我认为比较重要的内容的一个提炼,然后自己做个总结;以下: 什么是多态 多态:同一个操作应用到不同的对象上,可以产生不同的解释和执行结果,多态背后的思想是将“做什么”和“谁去做,怎么做”分开,其中“做什么”是不变

2017-10-11 19:51:58 573

原创 单例模式

单例模式单例模式是一种保证一个类仅仅拥有一个实例的模式,使用这种模式,全局仅仅有一个该类的实例,它的实现思路是,构造一个类,这个类拥有instance属性,这个属性是一个flag,当它为null时才能创建一个类的实例,并且把实例赋值给它;创建实例使用的一个静态方法一般命名为getInstance 实现一个不透明度单例模式不透明单例特点是就是不能通过new Single来创建单例,而是通过 Sin

2017-10-11 19:32:36 374

原创 javascript 观察者模式 (订阅者与发布者)

//发布-订阅类function Event(){ this.events = {};}Event.prototype = { on: function(key, fun){ if (!this.events[key]){ this.events[key] = []; } if (typeof fun == 'func

2017-10-09 22:21:01 335

原创 javascript安全类型检测(判断是否是原生对象)

typeof的小”bug”;提到类型检测大家首先应该会想到typeof 操作符,现在复习一下她的用法,对于一个值使用typeof会得到以下结果: “undefined”,”boolean”,”string”,”number”,”object”,”function”; 但是,有个bug是,当值为正则表达式的时候,结果为”function”; instanceof的弊端:value inst

2017-09-29 10:34:56 555

原创 javascript数组查重

题目描述找出数组 arr 中重复出现过的元素 示例1 输入: [1, 2, 4, 4, 3, 3, 1, 5, 3]; 输出: [1, 3, 4]; 方法一:先排序后查重:function duplicates(arr) { var newArr = arr.sort(); var result = []; for (var i = 0; i < newArr.length; i

2017-09-28 21:09:35 1460

原创 前端面试题(HTML部分)

HTML部分1、Doctype作用?有多少种Doctype文档类型?严格模式与混杂模式如何区分?答:标签用来定义浏览器用哪种模式进行排版和js运行,它只能声明在HTMl标签的上面;如果不加这个标签会导致文档会以混杂模式来渲染; 共有多少种DOCTYPE文档类型? HTML5:只有一种文档类型,即: HTML4.0.1引用了DTD,有三种文档类型,strict、transitional、fram

2017-09-27 20:52:31 296

原创 javascript实现拓扑排序

拓扑序: 如果,图中从v到w有一条有向路径,则v一定排在w之前,满足此条件的顶点序列称之为拓扑序,获得一个拓扑序的过程叫做拓扑排序;AVO如果有合理的拓扑序,则必定是有向无环图; // 拓扑排序 topSort: function(){ var that = this; var a = 1; var visit

2017-09-12 18:54:21 912

原创 javascript实现字典数据结构

字典是一种以键值对存储数据的一种结构其实我们可以使用数组和对象去实现字典结构,但是,我们自己定义一个Dictionary类,让这种字典类型使用起来更加简单,使用()来引用键更加方便; 定义Dictionary类function Dictionary(){ this.datastore = new Array();}给Dictionary原型添加方法:Dictionary.prototyp

2017-09-02 19:15:40 391

原创 javascript实现链表结构

链表结构的原理图:链表是由一组节点组成的集合,每个节点都是使用一个对象的引用指向他的后继节点;最后一个节点指向空对象null;为了更好的标示链表的起点,在第一个节点之前添加了一个头节点; 插入节点的原理图链表中插入一个节点的效率很高,向链表中插入一个节点,需要修改它前面那个节点(前驱节点),让它指向新加入的节点,然后让新加入的节点指向前驱节点以前指向的节点; 删除节点的原理图和插入节点一样也是改

2017-08-31 21:25:04 925

原创 javascript实现堆栈和简单的应用

堆栈数据结构的实现:在编程方式上面采用了面向对象编程里面的组合使用构造函数模式和原型模式; 实现原理:这里就不阐述堆栈的基本概念了,学c语言数据结构的时候都学过吧,这里主要纪录一下用js实现的原理;c语言用结构体去实现,在js语言中用面向对象就十分方便了;用dataStore存储数据;用top表示栈顶位置,它的值也等于栈的长度;出栈和入栈方法分别是pop和push;show()方法返回某一

2017-08-31 16:04:04 968

原创 javascript数组的使用总结

数组属于什么数据类型让我们一起复习一下吧:javascript基本数据类型有五种:Number、String、Undefined、boolean、Null引用类型有: 引用类型是一种数据结构,将数据和功能组织在一起: Object、Array、Date、RegExp、Function基本包装类型: Boolean、Number、String单体内置对象:Global、Math java

2017-08-29 22:16:39 340

原创 用鼠标事件实现拖拽

首先复习一下鼠标事件:click: 在用户单击主鼠标按钮,或者按下回车键时触发。 mousedown:用户按下任意鼠标按钮时触发,不能通过键盘触发; mouseenter:在鼠标光标从元素外部首次移动到元素范围之内时触发。 mouseleave: 在鼠标光标移动到元素范围之外时触发 mousemove:当鼠标指针在元素内部移动时重复地触发,不能通过键盘事件触发这个事件; mouseout:

2017-08-27 11:22:59 5541

原创 js正则表达式

正则表达式的基础知识:字面量的形式ECMAscript通过RegExp引用类型来支持正则表达式,使用下面语法就可以创建一个正则表达式: var expression = /pattern / flags;模式(patten):可以是简单或者复杂的正则表达式,可以包含字符串,限定符,分组,向前查找及反向引用;标志(flags): 用来标志正则表达式的行为,主要有一下三种标志: g:表示全局模式,

2017-08-24 11:25:28 259

原创 常用的表单验证

1、匹配双字节字符:[^\x00-\xff]正则表达式 [^\x00-\xff]能匹配双字节字符,下面方法用来获取字符串长度,规则为:单字节长度为1、汉字等双字节长度为2; function getLength(str){ return str.replace(/[^\x00-\xff]/g, 'aa').length;//把所有非单字节的字符转换成2个单字符 }

2017-08-23 14:43:56 281

原创 记录使用javascript中的一些坑

一、element.child和element.childNodes的区别childNodes:返回一个即时的NodeList,表示元素的子节点列表,子节点可能会包含文本节点,注释节点等。children:一个即时的HTMLCollection,子节点都是Element,IE9以下浏览器不支持。我遇到的坑:var childNodes = rootEle.children; chi

2017-08-22 16:23:44 237

原创 复习DOM相关操作

一、DOM节点创建DOM节点(Node)最主要的三类为:Element,元素节点Attribute,属性节点Text,文本节点DOM节点创建最常用方法:document.createElement()document.createTextNode()var node1 = document.createElement('div');var node2 = document.creat

2017-08-21 14:05:45 260

原创 js中的break和continue

用于循环体中break和continue都是用于循环中精准控制代码的执行; 当遇到break时,立即退出循环执行循环体后的语句; 但是遇到continue时,会退出循环,从循环体的顶部继续执行循环;实例 var num = 0; for (var i = 1; i < 10; i++){ if (i % 5 == 0){ break; } num ++

2017-08-21 11:04:01 512

原创 [数据结构]javascript实现二叉查找树

定义节点二叉查找树是由节点组成,所以我们首先要定义一个Node类, //定义类 function Node(data, left, right){ this.data = data; this.left = data; this.right = right; this.show = show; } //定义No

2017-08-20 21:12:19 273

原创 [复习]清除浮动的几种方法总结

为什么需要清除浮动前面有一篇博客中有提到关于”浮动塌陷”的描述http://blog.csdn.net/github_38861674/article/details/77427309 由于包含元素里面的元素都设置为浮动,导致包含元素的高度塌陷为0,如下图所示: 这种塌陷进而会产生如下后果:包含元素的背景和边框不能生效margin 和padding值不能生效,特别是上下的margin和pad

2017-08-20 17:02:58 420 1

原创 复习css布局模型

css布局模型浏览器从服务器读取数据,保持页面元素的原始顺序,是一个顺序,然后按照文档流的顺序进行解析; css布局模型有:流动模型flow、浮动模型float、层模型layer;流动模型: 流动模型基于标准文档流进行布局,除了绝对定位、固定定位之外、浮动之外,任何元素都将默认为流动布局模式;块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%

2017-08-20 11:09:18 374

原创 学习node.js(二)—— Buffer

在node中,在处理网络协议、操作数据库、处理图片、接收上传文件、在处理网络流和文件的操作中,还需要处理大量二进制数据,js原有的字符串不足以满足这些需求,于是Buffer应运而生;Buffer对象Buffer对象类似于数组,它的元素为16进制的两位数,即0到255的数值。不同编码的字符串占有元素的个数不一样,中文字在UTF-8下占用三个元素,字母和半角标符号占一个元素;不同的编码规则(bas

2017-08-18 20:28:22 288

原创 初次接触Promise异步编程

首先看下面这段动画的原始的callback写法:var ball1 = document.querySelector('.ball1'); var ball2 = document.querySelector('.ball2'); var ball3 = document.querySelector('.ball3'); function animate(ball, dist

2017-08-18 11:06:03 750

原创 学习node.js(一)

感官认识node.js的url模块直接在命令行体验url模块解析url地址的魅力: 命令行输入node进入node编辑模式: 输入url查看可用api的提示: url.parse()方法的小例子:输入一个合法的url地址字符串,通过url.parse()方法返回一个对象 第二个参数设置为true,query返回一个对象 url.format()接受一个对象,返回一个url字符串 url.res

2017-08-16 11:58:34 296

原创 css布局的小知识点积累(持续更)

<### 1、 行内元素的注意点只能设置margin-left,margin-right,padding-left,padding-right; 不能设置他们的top,bottom值 2、 多余的文字显示省略号在web开发过程中,常常会遇到要让布局中的某些文本根据宽度来显示,如果超过最大宽度仍然显示不完的,就显示为省略号的情况,添加下面的CSS样式表就能实现这种效果,但是这种效果只适用于单行显

2017-08-09 14:54:06 326

原创 padding的使用技巧(持续更)

创作一个和宽度相等的正方形盒子html代码: <div class="box-wrapper"> <div class="box"> </div> </div>css代码: .box-wrapper{ width: 200px; background:yellow; } .box{

2017-08-06 08:28:01 811

空空如也

空空如也

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

TA关注的人

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