- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 记录每次更新到本地git仓库
git中文件的状态的变化: 常用命令 git status 查看文件状态 未跟踪、修改、已暂存待提交 git add 跟踪暂存新文件(未跟踪文件)或修改文件 git status -s 状态简览 == git status --short 你可能注意到了 M 有两个可以出现的位置 左侧M:该文件被修改了并放入了暂存区 右侧M:该文件被修改了但是还没放入暂存区 ??:新添加的未跟踪文件
2017-08-23 02:04:26 318
原创 获取git仓库
本地新建git仓库 在本地目录中执行 git init 进行初始化git仓库,如果目录中已经存在文件要记得 add、commit 从远程仓库clone git clone [url]
2017-08-23 00:47:31 218
原创 git配置
设置用户信息 $ git config --global user.name "John Doe" $ git config --global user.email [email protected]如果使用了 –global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运
2017-08-22 23:52:10 251
原创 三列布局-左右固定,中间自适应
HTML结构: <div class='contain'> <div class='left'>111</div> <div class='right'>111</div> <div class='mid'>111</div> </div>1 . 利用flexbox.contain{ display:flex; } .left{
2017-07-31 20:42:24 261
原创 ajax琐事
原生js实现Ajax: Post请求时要设置头信息 Content-Type:application/x-www-form-urlencoded send发送的数据是字符串,要进行序列化 使用FormData时:不用设置头信息 send(formdata),不需要序列化 上传文件直接使用FormData,把文件append进FormData中,直接send就可以 如果用的jQuery:
2017-07-27 00:33:43 258
原创 setTimeout的作用域
setTimeout(fn,delay)在一定延迟后执行函数,fn会被放入到事件队列中,等待当前的程序执行完毕,才会从事件队列中选择下一个事件执行。 当fn执行时,fn已经不在调用setTimeout的环境了,此时已经在window全局环境下 例1:function fun(){ setTimeout(()=>{ console.log(this) },1000)
2017-07-19 19:17:54 1404
原创 promise
Promise 是异步编程的一种解决方案,与传统的回调函数和事件相比,Promise的优点是代码可以让我们更容易理解,我们可以更加清晰的知道代码的走向,避免回调函数嵌套陷入回调地狱中。一、三种状态Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败),Promise的状态只能从Pending 变为Resolved 或者从Pending 变为 Rej
2017-07-18 19:16:00 489
原创 从输入url到显示页面发生了什么
输入url DNS解析获取IP地址,以www.baidu.com为例 先查询浏览器缓存,浏览器会缓存DNS记录一段时间 系统缓存 路由器缓存 local dns拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话就直接返回。这个时候拿到的ip地址,会被标记为非权威服务器的应答。 local dns向根域请求www.baidu.com,根域返回com.域的服务器IP local dns向com.
2017-07-14 18:54:12 317
原创 CSS BFC(块级格式化上下文)
创建一个BFC,一个BFC可以被显式的触发。如果想要创建一个新的BFC,只需要给它添加下面提到的任何一个CSS样式就可以了。 float的值不为none position的值不为static或者relative display的值为 table-cell, table-caption, inline-block, flex, inline-flex中的其中一个 overflow的值不为visib
2017-07-12 18:14:45 235
原创 vue响应式原理
vue实例中的data,vue遍历其中的属性,并使用Object.defineProperty 把这些属性全部转为getter/setter。 每个组件实例都有相应的watcher 实例对象,当render函数渲染组件时,获取绑定的data中的属性会触发对应的getter,watcher把这些属性记录为依赖。 之后当依赖项更改时会触发对应的 setter 被调用,此时会通知 watcher 重新计算
2017-07-11 17:51:45 351
原创 正则表达式获取url参数
1、将所有参数转化为对象,重复的参数作为数组:function parseQuery(url) { var queryObj={}; var reg=/[?&]([^=&#]+)=([^&#]*)/g; var querys=url.match(reg); if(querys){ for(var i in querys){ va
2017-06-29 13:25:23 13044
原创 二分查找
二分查找的数组是有序的/** * Created by Administrator on 2017/6/27. */ var a=[ 1, 6, 8, 10, 23, 34, 44, 50, 54, 58,68,68, 68, 68, 88, 122, 324, 400, 555 ]; function midSearch(a,data) { var low=0, upp
2017-06-27 18:52:49 174
转载 归并排序
http://www.cnblogs.com/zichi/p/4796727.html 我们再进一步看,其实递归调用的结果形成了一棵二叉树!我们以数组[2, 1, 3, 4, 7, 6, 5]为例,代入数据到之前的快排算法中,堆栈中其实形成了一棵如下二叉树(二叉搜索树): 4 / \ 1 6 \ / \ 2 5 7 \ 3当递归到最底层向上回溯时,其实我们
2017-06-27 17:33:32 216
原创 冒泡排序
冒泡排序的思路 1. 相邻两个项依次比较,以增序为例,如果前一项小于后一项则两项交换,最后最大的一项放在了数组的最后一项 2. 第二轮比较因为最后一个已经是最大的项,所以不需要在比较 3. 依次类推,每一轮都会产生一个较大值var a=[555,68,88,34,10,23,44,54,6,122,58,50,400,324,8,1]; function bubbleSort(a) {
2017-06-27 00:49:35 158
原创 选择排序
选择排序的思路时: 1. 数组第0项依次和后面的想比较,如果第0项较大,则和那项交换,遍历后第0项成为数组最小的那项 2. 第2项再和后面的项比较,最后第二项变成第二小的项 3. 依次类推var a=[555,68,88,34,10,23,44,54,6,122,58,50,400,324,8,1]; function selectSort(a) { for(var i=0,lengt
2017-06-27 00:27:24 158
原创 插入排序
插入排序的思路: 1. 有一组数据,先从中拿出一个,再拿出第二个时和第一个做比较排序,拿出第三个时和前两个作比较 2. 当拿出第三个比较时,因为前两个已经有序(此处以递增为例),当第三个数大于等于前两个中的最大数时就不需要比较了,这个数直接放在第三位置 3. 如果第三个数小于前两个数中最大,则再和前一个数比较 4. 以后的项以此类推var a=[555,68,88,34,10,23,44,5
2017-06-27 00:12:05 213
原创 快速排序
快速排序的思路: 1. 从数组中随机选择一项作为基准项 2. 遍历数组,将>基准项的放到基准项右边,<=基准项的放到其左边 3. 将左右新的数组重复步骤1、2,知道只有一项为止var a=[555,68,88,34,10,23,44,54,6,122,58,50,400,324,8,1]; function quickSort(a) { var length=a.length;
2017-06-26 23:47:23 167
原创 利用ref进行dom操作
React中基本不需要直接操作DOM,但是有时候我们却不得不这么做,这个时候ref便出场了。ref有两种用法:1.通过函数进行绑定html: <input type="text" ref={(name)=>{this.name=name;}} js: let name=this.name.value;ref绑定的方法参数就是这个dom,将这个dom绑定到组件实例的自定义的属性上2.直接绑定到ref上
2017-05-31 17:57:30 1361
原创 原型、原型链
从网上找到的一张原型图 1. Object.__proto__===Function.prototype===Function.__proto__ 2. Function.prototype.__proto__===Object.prototype 3. Object.prototype.__proto__===null
2017-05-25 22:30:14 668
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-04-07 16:05:52 192
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人