自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

骑着毛驴的小猴子

web前端与php

  • 博客(78)
  • 收藏
  • 关注

原创 Git配置文件详解

一、三种配置文件 每一个软件都有一个配置文件,来决定程序如何执行,Git拥有三个级别的配置文件,有不同的优先级,高优先级的设置项会覆盖低优先级中相同的设置项。 1、文件夹中”.git”子文件夹中的config文件配置文件具有最高的优先级只对所在文档库有效2、登录账号的home directory中的.gitconfig文件优先级次于前者只对此账号登录的用户有效3、Git程序的安装文件

2017-12-24 23:55:32 1510

原创 Git的安装与初体验及工作方式

一、git的安装https://git-scm.com/downloads 在官网我们可以下载适合各个平台的git安装程序。官网主要版本是使用指令模式进行操作。也有其他公司将Git包装成GUI擦作界面类型的程序。建议先从Git的指令模式开始学习,才能够了解Git的工作细节。二、Git初次体验新建文件夹 test启动git bashcd "test路径"如果文件夹路径中包括空格,必须用单

2017-12-24 21:41:51 346

原创 VCS发展历史

一、版本控制系统 Version Control System,简称VCS,是程序代码管理软件的通称,用来保存程序文件的修改记录以及历史版本,以便日后查看或是使用。 二、集中式VCS 早期VCS系统采用集中式管理和控制的方式。如果要修改某一个程序文件,要先将其锁定,然后取出修改,在完成修改和回传之前,其他人都不能更改这个程序文件。这种方式可以很有效的避免“冲突“(conflict)的

2017-12-24 19:58:59 516

转载 CSDN-markdown编辑器使用教程

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-12-24 19:46:30 264

原创 二叉树与二叉查找树

一、树的相关术语树是一种非线性的数据结构,以分层的形式存储数据树由一组以边连接的节点组成,如下: 树的层数被定义为树的深度二、二叉树二叉树是一种特殊的树,规定每个节点的子节点不能超过两个通过将子节点的个数设置为2,可以高效地在树中插入、删除、查找数据二叉查找树是一种特殊的二叉树,相对较小的值保存在左节点上,较大的值保存在右节点上,这一特性使得查找的效率很高 三、二叉查找树的实现1

2017-09-12 01:36:27 468

原创 循环链表

一、概述循环链表与单向链表相似,唯一的区别是,在创建循环链表的时候,让其头结点的next指向本身换句话说,让链表的尾结点指向头结点 如果想要从后往前遍历链表,又不想付出代价去创建双向链表,则可以创建一个循环链表 ,从尾结点向后移动,就等于从后往前遍历链表二、代码展示 有疑问可以看看单链表那篇,详细在单链表对象封装的基础上,把判断最后一个元素时判断Null改完headfunction

2017-09-10 11:40:39 289

原创 双向链表

一、概述单链表虽然从头结点向尾结点遍历很简单,但反过来,从后往前遍历就麻烦了因此我们考虑通过给node结点增加一个属性,指向前驱,则从后往前遍历变得简单在删除节点时,无需查找前驱元素,效率会有所提高 二、对象的封装单链表中写的较详细,这儿直接贴代码,有疑问可以看看单链表那篇插入和删除建议自己动手一边画图一遍写代码function Node(ele){ this.element

2017-09-10 11:03:52 213

原创 单链表

注:本篇文章中图片来自网络 一、JavaScript数组与其他编程语言数组对比其他语言 长度固定,当数组已经被数据填满之后,再无法加入其他元素,产生越界错误添加和删除元素麻烦,需要将数组中的其他元素向前或向后移动JavaScript 长度不固定splice随意添加删除元素,无需移动其他元素二、JavaScript数组缺点被实现成了对象,因此在实际上使用时会很慢。于是我们可以考虑用链

2017-09-10 10:41:36 221

原创 队列

一、概述队列只能在队尾插入元素,在队首删除元素队列是一种先进先出(FIFO,first-in-first-out)的数据结构队列被应用在很多地方,如:提交操作系统执行的一系列进程、打印任务池等,一些仿真系统用队列模拟银行或杂货店里排队的顾客二、对队列的操作基本类的封装function queue(){ this.dataStore = []; //存储队列内的元素 this.

2017-09-08 18:35:54 252

原创

一、概述栈内的元素只能通过一端进行访问,这一端叫做栈顶。咖啡厅的一摞盘子就是现实生活中常见的栈的例子,只能再最上面取盘子,盘子洗干净后,也只能摞在最上面栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构二、对栈的操作实现类的封装function stack(){ this.dataStore = []; //保存栈内元素 this.top = 0

2017-09-08 18:10:18 281

转载 面包屑设计

一、什么是面包屑  面包屑是作为辅助和补充的导航方式(secondary navigation scheme),它能让用户知道在网站或应用中所处的位置并能方便地回到原先的地点。 最常见的面包屑的样式是:横向的文字链接,由大于号“>”分开,这个符号也暗示了它们的层级关系。【 面包屑的分类】基于用户所在的层级位置。(Location-based)   基于位置的面包屑用于告知用户在当前网站中所在的结

2017-09-08 11:52:54 1001

原创 vue-resource -- 全局拦截器interceptors

用于加载之前的设置loading等 代码展示目录结构interceptor.html<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script src="../../node_modules/vue/dist/vue.min.js" type=

2017-09-07 18:34:41 3145

原创 vue-resource实现get,post,jsonp请求

一、vue-resource概述1、 使用:引入vue-resource<script src="js/vue.js"></script><script src="js/vue-resource.js"></script>2、支持的HTTP方法 vue-resource的请求API是按照REST风格设计的,它提供了7种请求API:get(url, [options])head(url, [op

2017-09-07 17:57:53 2837

原创 vue-router -- 命名路由和命名视图

说明:vue-router的几个文章中例子是连贯的,因此对哪块有疑问请翻阅按发表时间排序的其他文章。 一、概述给路由定义不同的名字,根据名字进行匹配给不同的router-view定义名字,router-link通过名字进行对应组件的渲染。二、代码展示:目录视图 1、命名路由 2、命名视图index.jsimport Vue from 'vue'import Router fr

2017-09-07 15:58:12 9281

原创 vue-router -- 编程式路由

一、概述通过JavaScript实现页面跳转相关函数 $router.push(“name”);$router.push({path:”name”});$router.push({path:”name”?a=123}); //传参$router.push({path:”name”,query:{a=123}});$router.go();参数查询:$router.query.[参数名

2017-09-07 15:24:58 4448

原创 vue-router -- 嵌套路由

一、概述路由嵌套路由使用场景: name找用户,用户找对应的信息 二、代码演示目录结构 goods.vue<template> <div> 商品列表 <router-link to="/goods/title">标题</router-link> <router-link to="/goods/img">图片</router-li

2017-09-07 13:40:25 526

原创 vue-router -- 动态路由匹配

一、概述使用场景: 根据商品的id返回指定商品的详情页匹配规则 模式 匹配路径 $route.params /user/:username /user/Jack {username=’Jack’} /user/:username/post/:post_id /user/Jack/post/123 {username=’Jack’,post_id=’123’}二

2017-09-07 13:14:53 7720

原创 前端路由 -- vue-router

一、概念1、 什么是前端路由?路由是根据不同的URL来展示不同的内容或页面前端路由就是把不同路由对应的不同页面或内容的展示交给前端来做(真正实现前后端分离),以前都是通过服务器端来根据URL的不同返回不同的页面,那些页面在服务端都是实实在在存在的,而前端路由就是只有一个index,其余页面是根据组件等进行渲染的,虚拟页面。2、什么时候使用前端路由?在单页面应用程序中,大部分页面结构不变,只改

2017-09-07 12:58:16 328

原创 vue实现数据双向绑定原理剖析

一、对象.define 属性()该Object.defineProperty()方法直接在对象上定义一个新属性,或修改对象上的现有属性,并返回该对象。语法:Object.defineProperty(obj, prop, descriptor)参数说明: obj 定义属性的对象。prop 要定义或修改的属性的名称。descriptor 定义或修改属性的描述符。返回值 传递给函数的

2017-09-07 11:04:56 352

转载 CDN缓存那些事

一、CDN是什么?谈到CDN的作用,可以用8年买火车票的经历来形象比喻:8年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火车,火车票都要去市里的火车站购买,而从县城到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,可以直接在代售点购买火车,方便了不少,全市人民再也不用在一个点苦逼的排队

2017-09-06 20:40:48 201

原创 检索算法 ---利用二分查找进行数据重复次数统计

一、思想当binSearch()函数找到某个值时,如果数据集中还有其他相同的值出现,那么该函数会定位再类似值的附近。换句话说,其他相同的值可能会出现在已找到值的左边或右边。最简单的解决方案:写两个循环,两个都同时对数据集进行向左和向右遍历,统计重复次数。二、代码实现function binSearch(arr, data) { var low = 0; var high =

2017-09-06 15:32:35 745

原创 检索算法 ---二分查找

一、定义与算法描述如果要查找的数据是有序的,二分查找比顺序查找算法更高效。将数组的第一个元素设置为下边界(0)将数组最后一个元素所在的位置设置为上边界(数组长度减1)若下边界等于或小于上边界,做以下操作: 将中点设置为上边界加下边界除以2如果中点元素小于查询的值,则将下边界设置为中点元素所在下标+1如果中点元素大于查询的值,则将上边界设置为中点元素所在下标-1否则中点元素就是要查找的

2017-09-06 15:19:54 321

原创 检索算法 ---顺序查找

1、在数组中或者列表中查找数据有两种方式:顺序查找和二分查找。顺序查找适用于元素随机排列的列表二分查找适用于元素已排序的列表《效率高》这里我们先谈顺序查找 2、顺序查找对数组进行顺序查找function seqSearch(arr,data){ for(var i = 0 ;i < arr.length ; i++){ if(arr[i] == data) ret

2017-09-06 13:05:07 1569

转载 希尔排序

一、定义 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。 二、基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键

2017-09-06 12:35:44 168

原创 快速排序

一、定义快速排序也是采用分而治之的算法,通过递归的方式将所有数据分解为包含较小元素和较大元素的不同子序列。不断重复直到所有数据都是有序。二、基本思想在数据集之中,选择一个元素作为”基准”(pivot)。所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。三、图解

2017-09-06 11:59:48 181

原创 归并排序

一、定义 所谓归并排序是指将两个或两个以上有序的数列(或有序表),合并成一个仍然有序的数列(或有序表)。这样的排序方法经常用于多个有序的数据文件归并成一个有序的数据文件。归并排序的算法比较简单。 二、基本思想采用分治法的思想假设已经有两个有序数列,分别存放在两个数组s,r中;并设i,j分别为指向数组的第一个单元的下标;s有n个元素,r有m个元素再另设一个数组a,k指向该数组的第一个单元下标

2017-09-06 10:17:29 215

原创 vue实现父子双向通信

父组件通过props向子组件传递数据子组件用emit向父组件传递数据父子组件同时操作同一个数,进行加运算与减运算子组件 counter.vue<template> <div> <button v-on:click=increament>+</button> <button @click=decreament>-</button> <p>

2017-08-28 20:21:05 567

转载 vue目录结构

一、目录结构 二、目录解析

2017-08-28 20:12:16 290

原创 vue-cli构建vue项目

一、下载node.js (node里面提供了npm包可供我们下载各种包,因此我们先下载node.js)https://nodejs.org/en/download/下载完成之后傻瓜式安装即可(一直点下一步)安装完成检查是否安装成功 升级npm版本npm install -g npm //-g指全局安装npm是要访问国外站点的,因此速度会较慢。在安装模块时我们可以使用淘宝镜像。安装淘宝镜

2017-08-28 20:08:08 253

原创 JavaScript数据类型以及数据类型转换

一、数据类型原始类型 number,string,boolean,undefined,null引用类型 Array,Math,Date,Object……Function二、数据类型检测函数typeof 查看指定数据的类型console.log(typeof "123"); //stringconsole.log(typeof 123); //numberconsole.lo

2017-08-28 02:01:12 174

原创 CSS HACK技术以及如何解决浏览器兼容性

一、处理兼容性?:针对不同的浏览器编写不同的css。 二、标准模式与混杂模式IE6之前,不同浏览器之间没有兼容性而言浏览器运行模式 混杂 标准非标准触发混杂模式 不声明DOCTYPE 会默认使用IE5.5来熏染页面不同模式下,浏览器对CSS 和JS解析效果不同三、什么是CSS HACK? 浏览器的类型及版本的不同会造成CSS效果渲染不同。 四、浏览器兼容性 1、

2017-08-28 01:09:48 1296

原创 闭包

一、概述闭包是指有权访问另一个函数作用域中变量的函数在一个函数内部创建另一个函数,即可创建闭包function f1(num){ function f2(){ console.log(num); } f2();}f1(5);要理解闭包,必须要清楚作用域链。在上面的例子中,先定义了f1函数,然后又在全局作用域中调用了它,当调用f1时,会创建一个arg

2017-08-28 00:08:07 208

转载 作用域与作用域链

一、作用域全局作用域 在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域: 最外层函数和在最外层函数外面定义的变量拥有全局作用域所有末定义直接赋值的变量自动声明为拥有全局作用域所有window对象的属性拥有全局作用域var a = 5;function f1(){ var b = 3; c = 4;}console.log(a);

2017-08-27 21:11:26 206

原创 JavaScript中的Function对象以及arguments对象详解

一、函数本质函数本质上就是对象,函数名指向函数对象。function f(){ return 123;}var num = f();var x = f;console.log(typeof f); //function 二、创建函数(共3种方法)直接使用function关键字声明新的函数function f1(){}使用Function对象创建var f2 = new

2017-08-27 18:14:23 803

原创 JavaScript中的ERROR对象技术详解

一、错误处理基本概念错误,指程序中的非正常问题,在程序执行过程中,可能发生也可能不发生的问题,称为“错误”或者“异常”。解释器会为每一个错误创建一个ERROR对象若程序没有错误发生,则正常执行至结束发生错误时,不处理会终止程序的执行,处理错误继续执行。二、错误处理语法结构try{ //可能抛出错误对象的语句}catch(用于接收错误对象的变量名){ //处理语句}[

2017-08-26 16:58:56 414

原创 Boolean对象常用属性及方法详解

常用属性constructor 返回对创建此对象的 Boolean 函数的引用prototype 使您有能力向对象添加属性和方法。常用方法toString() 把布尔值转换为字符串,并返回结果。valueOf() 返回 Boolean 对象的原始值。会转化为false的几个值 布尔对象无初始值或者其值为:0-0null“”falseundefinedNaN

2017-08-26 16:31:58 1082

原创 Number对象常用属性与方法详解

表示数值数据和数字常数,主要用于对数字进行指定格式的输出。 一、属性 JS中Number能表示的最大最小数值console.log(Number.MAX_VALUE); //1.7976931348623157e+308console.log(Number.MIN_VALUE); //5e-324二、所有 JavaScript 数字均为 64 位JavaScript 不是类型语言。与许多其他

2017-08-26 16:20:39 1173

原创 Date对象常用属性与方法详解

通过Date对象,可以获取系统的日期时间应用场景:例如秒杀倒计时 查询:某个时间范围内的薪资 查询:某个时间点发生的事情 跟时间相关的太多了,几乎所有项目都会与日期时间有非常多的关联。常用属性与方法直接以代码展示var date = new Date();var y = date.getFullYear(); //返回四位年份(例如:2008)var m = date.getMonth(

2017-08-26 15:26:07 1520

原创 Math对象常用属性与方法详解

Math对象没有构造函数,也就是说new Math()语法是错误的 调用其属性和方法时,直接用Math对象名 一、属性 属性名 含义 属性值 PI 圆周率 3.1415926 E 自然对数的底数 2.718 LN2 2的自然对数 0.639 LN10 10的自然对数 2.302 LOG2E 以2为底e的对数 1.414 L

2017-08-26 15:16:20 922

原创 正则表达式技术详解 Regular Expression

一、正则表达式的用途: 1、两种用法regexp.xxx(string) string.yyy(regexp)2、常用到在一段文本中搜索、匹配、替换指定形式的文本 eg:词语出现频率统计、验证邮箱等 二、语法 1、定义正则表达式对象用Perl风格的直接量语法 /pattern/attribute 不加引号/ 不能省略pattern –>表达式内容attribute

2017-08-26 14:21:00 1899

空空如也

空空如也

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

TA关注的人

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