自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图解插入排序

插入排序时一种常见的排序算法,其原来有点类似于我们打扑克摸牌的过程,每摸一张牌,我们便通过对比手上已有的牌,将刚拿到的牌放入合适的位置。其实现实现思路(假设按正序排序)假设请j个已经排好序, 将第j个元素分别于其前面元素[i]比较,如i元素较大,则将i元素的值往前移动一位,即 a[i+1] = a[i] 若i元素较小,则直接将j位置的值放到 i+1元素的位置。下面以[1, 5, 3, 4, 5,

2017-11-23 22:34:59 6310 2

原创 sql数据库字段和关键字冲突的问题解决

当我们定义数据库的字段时,可能会在不经意间定义了和数据库关键字名相同的字段,这时我们在对该字段进行操作时,常会发生错误。例如我在表中定义了一个from字段,我们知道 from值mysql的关键字,所以我们在执行查询时 SELECT * FROM WHERE from = 'xxx';就会报错,其解决办法有 1.重新定义字段。 2.用反撇号(`)包住待操作的关键字,换成一下语句则不会报错(注意不

2017-11-22 10:32:39 11986

原创 viewport详解

在移动开发初期,我们可能会有以下的困惑在开发过程中,为何Iphone5的分辨率是 320px * 568px? 但对外宣称的分辨率却是 640 * 1136? 两者之间的关系是什么?它们之间是如何进行转化的? viewport是啥?有什么作用?接下来就来围绕着这个几个问题进行解释一、首先是一些基本概念的解释1. px:css pixels 逻辑像素,浏览器使用的抽象单位。 即是不同的设备 1px

2017-11-21 19:02:48 2672

原创 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

2017-10-11 14:57:36 2297

原创 原生js事件批量绑定-事件委托

我们常常会遇到一个需求,就是给表格里面的每个特定的td绑定一个事件.遇到这种需求,很多人基本都是直接上如下代码: var td = document.getElementsByTagName("td"); for( let i =0; i<td.length; i++){ td[i].onclick = function(){ //事件处理 }

2017-09-20 13:01:23 7323

原创 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

2017-09-19 12:33:08 486

原创 Html5之datalist-自动匹配的的表单输入

datalist是Html5新增的标签,主要用于自动匹配表单的可能的输入datalist将用户可能输入的值,放在option列表里,当用户在对应的表单输入的时候,可以根据输入的关键字自动匹配option列表的内容,也可以输入option里不存在的值。用法如下<input list="browsers" name="browser">//表单的list属性指定对应datalist<datalist

2017-09-19 10:44:40 4660 2

原创 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]; } }

2017-09-14 23:02:32 342

原创 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

2017-09-04 16:57:34 468

原创 preventDefault 和stopPropagation

stopPropagation()阻止事件在DOM层进一步传播IE下可以使用以下方式达到相同目的event.cancelBubble=true;//阻止事件进一步冒泡,IE只有事件冒泡阶段preventDefault()阻止特定事件的默认行为例如在a标签的点击事件里使用event.preventDefault();可以防止在点击连接后跳转到指定的url. IE下可以使用以下方式达到相同目的even

2017-09-03 18:37:46 241

原创 label元素浅析

1.相信很多人都使用过label标签,那么label标签到底是起到了什么作用呢?下面就来聊聊label标签的作用。要知道一个标签的作用是啥,最好的办法是看官方文档。下面是官方文档对label标签的解释The label element represents a caption in a user interface. The caption can be associated with a spec

2017-09-03 10:58:02 1377

原创 正则表达式匹配任意字符

正则表达式匹配任意字符 $pat='/[\s\S]*/';其中:\S: 表示匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。\s: 表示匹配匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。[\s\S]: 表示出现空白和非空白中的任意一个字符,即是任意字符*: 表示匹配前面的子表达式零次或多次,综述:[\s\S]*:表示匹配任意字符(空白字符+非

2017-08-31 10:49:46 21920

原创 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

2017-08-28 16:05:07 246

原创 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;

2017-08-28 09:35:11 589

原创 absolute同时设置left,right,top,bottom

absolute同时设置left,right,top,bottom遵循以下原则如果top和bottom一同存在的话,那么只有top生效。如果left和right一同存在的话,那么只有left生效。

2017-08-28 09:10:49 3331 4

原创 git远程添加和删除

添加一个远程仓库连接: git remote add <name> <url>name是自定义的名字 url 是在github创建仓库完成时的那个地址,https的为 https://github.com/github用户名/仓库名.git添加完连接就可以根据名字提交代码了 git add ... git commit ... git push name master(分支)删除一个仓库连接g

2017-08-27 19:10:14 294

原创 css设置容器占满屏幕

设置该元素的父元素,祖先元素的宽度和高度均为100%//防止产生空隙*{ margin:0; padding:0}html,body,目标元素的祖先元素{width:100%;heigght:100%;}目标元素{ width:100% height:100%}如果目标元素是行内元素(无法设置宽高),可设置display为block最后css代码:*{ margin:

2017-08-27 18:57:48 8832

原创 nth-child()与nth-of-type()区别

nth-child()与nth-of-type()都是css3选择器,那么两者有什么区别呢?例如p:nth-child(n)表示选取父元素的下的第n个元素,且这个元素必须是p元素,如果父元素下第n个元素不是p元素。则该选择器将匹配失败。 第n个元素复合的情况下 <!DOCTYPE html><html><head><style> .test p:nth-child(3){backg

2017-08-27 16:44:05 406

原创 算法题之-数组合并排序

描述:给定两个排好序的数组,编写一个合并函数,使得合并后的数组仍然是排好序的,且只能在原数组操作。设两个数组分别为arr1,arr2.解决方法:计算出合并后的数组长度,并用一个指针p1指向合并后的最后一个位置(此处假设arr1的位置足够多)。用两个指针p2,p3分别指向待合并数组的最后一个位置。比较p2,p3位置的大小关系。若 arr1[p2] >arr2[p3],则将p2位置的元素复制到p

2017-08-24 20:35:24 882

原创 算法题之-二维数组元素查找

算法题之-二维数组元素查找描述:给定的一个二维数组,该二维数组从左往右从上往下依次增大,给定一个元素值,求该元素值是否是在该数组中 解决办法先将待查找元素key与数组最右上角元素设为a对比: 若a>key,因数值大小从上往下递增,故该元素往下一定不存在key值,故可以删除该列。若a >key,因数值大小从左往右递增,故该元素往右一定不存在key值,故可以删除该行。 重复进行即可判断是否存在

2017-08-22 20:49:12 628

原创 c++ 易错题

1.宏定义:#include<iostream>using namespace std;#define add(a,b) a+bint main(){ cout<<5*add(3,4)<<endl; //结果是5*3+4=17}

2017-08-22 12:45:51 344

原创 javascript引用传参的坑

首先看下面的js函数输出什么function change ( o ) { o.name = "abcd"; o = new Object(); o.name = "1234" }var obj= new Object();change( obj );console.log( obj.name );如果你的答案是‘abcd’,那么可以忽略下面了咋一眼看上去,我的第一感

2017-08-18 20:27:53 503

原创 css3 实现自由摆动的立方体

其效果图如下:https://zhijs.github.io/web/cubecss3实现自由摆动的立方体实现立方体,主要用到的css3动画属性有 translateX(a )/ translateY(a )/translateZ(a) 分别是往x,y,z方向移动a像素的距离rotateX(deg) / rotateY(deg)/ rotateZ(deg) 分别表示沿x,y,z轴旋转,

2017-08-12 17:59:08 563 1

原创 css3 实现进度条

css3实现圆圈进度条实现原理首先圆圈进度条是一直在旋转的,旋转我们可以利用的是css3的rotate(deg)实现rotate(deg):一个二维旋转的css3属性,作用是将指定元素旋转指定的角度,正值表示顺时针方向旋转,负值表示逆时针防线旋转,旋转的角度范围为(-360deg~360deg)。 一般的进度条的是长这样的 ; 这可以看成是一个圆弧在一直旋转,html中没有圆形标签,都

2017-08-12 14:58:22 1658

原创 c++模板函数

1.模板函数的作用模板函数的作用是定义一个通用类型的函数,以便更好的复用。 假设你需要实现一个两个整数相加的c++函数。最简单最容易想到的是如下方式 //整形加法 int add(int a, int b) { return a+b; }再写一个浮点数相加的函数,于是复制上面代码 //浮点数加法 float add(float a, float b)

2017-07-15 16:20:57 376

原创 浏览器通过apache访问php文件提示下载问题,更改项目文件目录

在配置了apache和php后,首次访问php文件时,提示下载,解决办法如下在apache安装目录下,有个conf文件夹,打开该文件夹下的httpd.conf配置文件,加入如下代码:AddType application/x-httpd-php .php .phtml #表示允许处理的文件类型AddType application/x-httpd-php-source .phps LoadM

2017-06-10 15:10:24 12369 1

原创 Python set解析

在python中,set是一种强大的数据类型set:集合,是一个无序不重复元素集1.创建集合向内置的函数set传递一个列表或可迭代对象>>> a=set('abcdef')>>> a{'b', 'c', 'a', 'e', 'd', 'f'}>>> b=set('abc')>>> b{'c', 'b', 'a'}#python 3.0还可以s={'a','b','c'}##注意s={

2017-06-06 16:33:43 404

原创 python笔记

1.连续的比较表达式 2<3<4 #True,支持连续的比较的判断,js也支持这种表达式2.除法 #python 2.6 3/2 #1整数除,舍弃余数 3/2.0 #1.5 有浮点数,真除法 #python 3.0 3/2 #1.5 3/2.0 #1.5 都表示真除法 3//2 #1 表示求商舍余 3//2.0 #1.03.内置函数min(1,2,3,4,5) #1min([1,2,

2017-06-06 16:23:06 157

原创 Python函数的参数数传递方式

在python中,参数的传递方式有两种引用传递 对于可变类型如列表,字典等,参数的传递时按引用传递的。 eg:def fun(data): data[0]=2 print(data) #[2,2,3,4] print(id(data))data1=[1,2,3,4]fun(data1) #[2,2,3,4]print(id(data1))###输出结果[2,

2017-05-30 21:37:04 318

原创 频率滤波器

频率滤波器频率滤波器使频率域的一种滤波器,分为高通(锐化)滤波器和低通(平滑)滤波器。高通:即是高频率的可以通过,低频的被阻止,变的很小,由图像中高频的点就是灰度变换梯度较大的区域,所以一个图像通过一个高频滤波器后,像素值变化梯度大的被留下来,而像素梯度变化小的被抑制。所以起到的是锐化的作用,凸显边缘。低通低通则相反,去除了像素变换梯度大的区域,从而起到平滑的作用。理想低通滤波器传递函数为:

2017-05-30 21:36:04 611

原创 图像傅里叶变换的幅度谱和相位谱的以及反变换

目的:读取图像 A(lena.tiff)和B(rice.tif),显示这两幅图像,对图像作傅立叶变换,显示图像的傅里叶幅度谱和相位谱。做傅立叶逆变换,显示重建图像。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度对图像而言,图像的边缘部分是突变部分,变化较快,因此反应在频域上是高频分量;图像的噪声大部分情况下是高频部分;图像平缓变化部分则为低频分量。也就是说,傅立叶变换提供另外

2017-05-28 16:27:42 42387 2

原创 TCP解析

TCP传输控制协议TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议 tcp是一个可靠的协议,也就是说,除非网络出现问题,数据将被完好的按原样正确的传送到另外一端,其可靠性主要通过以下的规则实现。1.防止数据篡改方面为了防止数据在传输过程中被损坏,每个信息包都包含了一个==校验码==,这个校验码就是一个用来保证信息

2017-05-24 11:28:06 257

原创 Javascript let解析

let关键字let是在ES6引入的新关键字,其主要用于定义块作用域的变量。1.将变量绑定所在的任何作用域中,通常是{…}我们知道 var声明的变量将会绑定在包围该变量的函数作用域内。注意是函数作用域,并非{}代码块。 常见的是将变量绑定子for循环内 eg: //混淆点 var foo = true, baz = 10; if (foo) { var bar = 3;

2017-05-22 16:56:53 1142

原创 python字符串

Python字符串1.支持序列操作eg: s='abcd'len(s) #s字符串可以当成序列a=2s[a] #c,其索引也支持表达式s[-1] #反向索引s(0:3) #分片操作,返回 abc,也支持负索引分片#还有加号合并,重复2.字符串的不可变性在上述的操作中,没有对原字符串做任何改变(包括加号合并,重复),因为python字符串具有==不可变性==,即是在创建后不能就地改变,但

2017-05-21 21:33:18 290

原创 回溯法解决八数码问题python

这次人工智能的作业就是用回溯法解决八数码问题,经过一天多的功夫,终于写出来了。下面是正题回溯法是人工智能领域的一种重要的盲目搜索算法,何为盲目算法,即是基于规则,不断的尝试可能的路径,直到到达目的的解为止。 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法

2017-04-11 21:18:59 6585 4

原创 javascript对象的defineProperty方法解析

defineProperty是Object对象特有的方法,其作用是为对象定义新的属性和修改对象原有的属性。 调用形式为:Object.defineProperty(obj, prop, descriptor) obj:属性所在的对象 prop:属性的名称 descriptor:描述符对象,表示属性的行为对象,该对象的属性为为以下的四种值,可设置其中一个或多个 1、configurable:

2017-04-09 16:08:08 1304

原创 js函数内部属性arguments和this

javascript函数内部有两个重要的属性分别是arguments,this两个对象 内部属性是指只能在函数内部才能访问的属性。arguments:该对象主要用于保存所传入函数的参数,同时argumenst对象又有一个指向该函数的指针属性callee。this:调用该函数的外部对象指针。var fn=function(n1,n2){};fn(1,2);//此时this指向的是外部环境,次处wi

2017-04-08 13:57:11 422

原创 javascript定义函数的三种形式

源自:javascript高级程序设计javascript的函数是属于引用类型,其定义的方法有三种1、使用函数声明 eg:function sum(num1,num2){ return num1+num2;}2、使用函数表达式eg:var sum=function(num1,num2){ return num1+num2;}; /

2017-04-08 10:51:36 451

原创 javascript基本类型和引用类型浅析

javascript包含两种不同的数据类型的值,分别是基本类型值 和引用类型值基本类型,分别是:字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)五种基本数据类型时按值访问的,可以直接操作变量的内容,如果从一个基本类型变量向另外一个变量赋值,会创建该变量的副本,两者之间不会影响。eg:此处用的是node的js环

2017-04-05 14:21:57 267

原创 js调用其他js文件的函数,以及js加载过程

我们在编写js时,通常会需要在一个js文件中调用另一个js文件的函数,那么如何调用呢? 例如我有一个a.js文件,功能是弹出一个窗口的函数,我在b.js文件中需要调用这个函数,写法如下(函数开头弹窗是验证js加载顺序)/*a.js文件*/alert("function a");function a(s){ alert(s);}/*b.js文件*/alert("function b");

2016-08-24 15:57:59 22890

空空如也

空空如也

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

TA关注的人

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