图解插入排序 插入排序时一种常见的排序算法,其原来有点类似于我们打扑克摸牌的过程,每摸一张牌,我们便通过对比手上已有的牌,将刚拿到的牌放入合适的位置。其实现实现思路(假设按正序排序)假设请j个已经排好序, 将第j个元素分别于其前面元素[i]比较,如i元素较大,则将i元素的值往前移动一位,即 a[i+1] = a[i] 若i元素较小,则直接将j位置的值放到 i+1元素的位置。下面以[1, 5, 3, 4, 5,
sql数据库字段和关键字冲突的问题解决 当我们定义数据库的字段时,可能会在不经意间定义了和数据库关键字名相同的字段,这时我们在对该字段进行操作时,常会发生错误。例如我在表中定义了一个from字段,我们知道 from值mysql的关键字,所以我们在执行查询时 SELECT * FROM WHERE from = 'xxx';就会报错,其解决办法有 1.重新定义字段。 2.用反撇号(`)包住待操作的关键字,换成一下语句则不会报错(注意不
viewport详解 在移动开发初期,我们可能会有以下的困惑在开发过程中,为何Iphone5的分辨率是 320px * 568px? 但对外宣称的分辨率却是 640 * 1136? 两者之间的关系是什么?它们之间是如何进行转化的? viewport是啥?有什么作用?接下来就来围绕着这个几个问题进行解释一、首先是一些基本概念的解释1. px:css pixels 逻辑像素,浏览器使用的抽象单位。 即是不同的设备 1px
JS 对象深复制方法 //对象拷贝/* 方式一: 递归拷贝*/var clone = function(v) { var o = v.constructor === Array ? [] : {}; for( var key in v) { o[key] = typeof v[key] === 'Object' ? clone(v[key]) : v[key]; } return o;}c
原生js事件批量绑定-事件委托 我们常常会遇到一个需求,就是给表格里面的每个特定的td绑定一个事件.遇到这种需求,很多人基本都是直接上如下代码: var td = document.getElementsByTagName("td"); for( let i =0; i<td.length; i++){ td[i].onclick = function(){ //事件处理 }
css3选择器(全) 1元素选择符E1~E2 选择前面有E1元素的 E2元素,两个元素可间隔其他元素。2属性选择符E[attribute^=”value”] 选择特定属性值以value开头的E元素。E[attribute$=”value”] 选择特定属性值以value结束的E元素。E[attribute*=”value”] 选择特定属性值以包含value值的E元素。伪类选择符E:first-of-t
Html5之datalist-自动匹配的的表单输入 datalist是Html5新增的标签,主要用于自动匹配表单的可能的输入datalist将用户可能输入的值,放在option列表里,当用户在对应的表单输入的时候,可以根据输入的关键字自动匹配option列表的内容,也可以输入option里不存在的值。用法如下<input list="browsers" name="browser">//表单的list属性指定对应datalist<datalist
Javascirpt超简单求数组元素的最大值 一提到求数组的最大值,很快有人就写出了如下代码var a = [1,2,3,4,5,3,10,6,7,8];findMax(a); //10function findMax(arr){ var max = arr[0]; for(let i=1 ;i<arr.length; i++){ if(arr[i]>max){ max=arr[i]; } }
javascript易错题 1var x=new Boolean(false);if(x){ //x此时为对象,Boolean(对象)==true alert("hi");}var y=Boolean(0); //数值0,Boolean(0)==false;if(y){ alert("hello");}知识点: if(flag){}//会先将flag执行转换操作,即if(Boolean(flag
preventDefault 和stopPropagation stopPropagation()阻止事件在DOM层进一步传播IE下可以使用以下方式达到相同目的event.cancelBubble=true;//阻止事件进一步冒泡,IE只有事件冒泡阶段preventDefault()阻止特定事件的默认行为例如在a标签的点击事件里使用event.preventDefault();可以防止在点击连接后跳转到指定的url. IE下可以使用以下方式达到相同目的even
label元素浅析 1.相信很多人都使用过label标签,那么label标签到底是起到了什么作用呢?下面就来聊聊label标签的作用。要知道一个标签的作用是啥,最好的办法是看官方文档。下面是官方文档对label标签的解释The label element represents a caption in a user interface. The caption can be associated with a spec
正则表达式匹配任意字符 正则表达式匹配任意字符 $pat='/[\s\S]*/';其中:\S: 表示匹配任何非空白字符。等价于 [^ \f\r\t\v]。\s: 表示匹配匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\r\t\v]。[\s\S]: 表示出现空白和非空白中的任意一个字符,即是任意字符*: 表示匹配前面的子表达式零次或多次,综述:[\s\S]*:表示匹配任意字符(空白字符+非
css3动画相关 transform-origin设置动画的开始位置兼容性写法为 transform-origin:x y z; /*x,y,z可以是百分比和像素*/ -webkit-transform-origin:x y z; /* chrome safari*/ -moz-transform-origin:x y z; /*firefox*/ -o-transform-or
absolute元素实现居中方式 已知元素宽高 元素{ position:absolute; top:50%; left:50% width:100px; height:100px; margin-left:-50px; margin-top:-50px; }未知元素宽高或元素不定宽高 元素{ position:absolute; top:0; left:0; right:0;
absolute同时设置left,right,top,bottom absolute同时设置left,right,top,bottom遵循以下原则如果top和bottom一同存在的话,那么只有top生效。如果left和right一同存在的话,那么只有left生效。
git远程添加和删除 添加一个远程仓库连接: git remote add <name> <url>name是自定义的名字 url 是在github创建仓库完成时的那个地址,https的为 https://github.com/github用户名/仓库名.git添加完连接就可以根据名字提交代码了 git add ... git commit ... git push name master(分支)删除一个仓库连接g