随笔分类 -  JS

摘要:为了引入Dgls,我们从创建Dom节点说起。用JS创建Dom节点var div = document.createElement('div');div.className = 'gdls';var test = document.createTextNode('zhe');div = div.appendChild(test);看到没,我们仅仅为了创建zhe竟然写了四行代码,而且用了那么多无用的字符。用JQ创建Dom节点$('div',{ 'class': 'dgls', 'id': 阅读全文
posted @ 2013-11-11 15:38 JChen___ 阅读(1558) 评论(5) 推荐(1) 编辑
摘要:一、通过三个问答来认识一下Ajax什么是Ajax?Ajax是Asynchronous Javascript And XML的缩写,它是一种技术。Ajax有什么用?这一技术能够向服务器请求额外的数据而不用卸载页面。Ajax有什么好处?会带来更好的用户体验。二、Ajax的前世1)前端的Ajax早在Ajax出世之前,Ajax式的通信要通过一些Hack才能完成,大多数是使用隐藏的框架或内嵌框架。(很遗憾我不是在那个时期成长起来的,所以就不太熟悉了,大概是利用iframe来实现的,只不过是不跨域而已)2)中间件的Ajax在Ajax出世之前,有一种叫远程脚本的技术,它的工作和Ajax类似。Javascri 阅读全文
posted @ 2013-11-07 14:13 JChen___ 阅读(2607) 评论(14) 推荐(4) 编辑
摘要:1.同源策略如下:URL说明是否允许通信http://www.a.com/a.jshttp://www.a.com/b.js同一域名下允许http://www.a.com/lab/a.jshttp://www.a.com/script/b.js同一域名下不同文件夹允许http://www.a.com:8000/a.jshttp://www.a.com/b.js同一域名,不同端口不允许http://www.a.com/a.jshttps://www.a.com/b.js同一域名,不同协议不允许http://www.a.com/a.jshttp://70.32.92.74/b.js域名和域名对应i 阅读全文
posted @ 2013-10-31 19:25 JChen___ 阅读(36020) 评论(12) 推荐(11) 编辑
摘要:一、你必须知道的1>原型及原型链在继承中起到了关键的作用。所以你一定要理解他们。2> 不会JS中的OOP,你也太菜了吧!(第一篇)二、继承的6种方法1> 原型链继承原型链继承是通过创建Super的实例,并将该实例赋值给Sub.prototype来实现的。实现的本质是:重写子类型的原型对象,代之以超类型的实例。function Super(){ this.name = 'JChen___';}Super.prototype.getSuperName = function(){ return this.name;}function Sub(){ this.subn 阅读全文
posted @ 2013-10-18 13:13 JChen___ 阅读(1865) 评论(11) 推荐(1) 编辑
摘要:一、你必须知道的1) 字面量2) 原型3)原型链4) 构造函数5)稳妥对象(没有公共属性,而且其方法也不引用this的对象。稳妥对象适合用在安全的环境中和防止数据被其它程序改变的时候)二、开始创建对象吧: 首先来看两种最基本的创建对象的方法1> 使用Object创建对象var o = new Object();o.sname = 'JChen___1';o.showName = function(){ return this.sname;}2> 使用对象字面量创建对象var o = { name: 'JChen___2', getName: func 阅读全文
posted @ 2013-10-12 15:28 JChen___ 阅读(2041) 评论(3) 推荐(4) 编辑
摘要:一:你必须知道的1> JS原型2> 排序中的有序区和无序区3> 二叉树的基本知识如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力。二:封装丑陋的原型方法Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};在下面的排序中都要用到这个方法。三:9种排序算法的思路和实现1>插入排序基本思路:从无序区的第一个元素开始和它前面有序区的元素进行比较,如果比前面的元素小,那么前面的元素向后移动,否则就将此元素插入到相应的位置。Ar 阅读全文
posted @ 2013-10-10 11:14 JChen___ 阅读(9492) 评论(4) 推荐(9) 编辑
摘要:归并排序思路1) 归并从两个有序表R[low...mid]和R[mid+1...high],每次从左边依次取出一个数进行比较,将较小者放入tmp数组中,最后将两段中剩下的部分直接复制到tmp中。这样tmp是一个有序表,再将它复制加R中。(其中要考虑最后一个子表的长度不足length的情况)2) 排序自底向上的归并,第一回:length=1;第二回:length=2*length ...代码实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Arr... 阅读全文
posted @ 2013-10-09 23:11 JChen___ 阅读(264) 评论(0) 推荐(0) 编辑
摘要:堆排序思路堆排序是一种树形选择排序方法(注意下标是从1开始的,也就是R[1...n])。1) 初始堆:将原始数组调整成大根堆的方法——筛选算法:比较R[2i]、R[2i+1]和R[i],将最大者放在R[i]的位置上(递归调用此方法到结束)2) 堆排序:每次将堆顶元素与数组最后面的且没有被置换的元素互换堆排序实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('createHeap', function(low, hi 阅读全文
posted @ 2013-10-09 14:30 JChen___ 阅读(349) 评论(0) 推荐(0) 编辑
摘要:选择排序思路在无序区中选出最小的元素,然后将它和有序区的第一个元素交换位置。选择排序实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('selectSort', function(){ var len = this.length, i, j, k, tmp; for(i=0; i<len; i++){ k = i; for(j=i+1; j<len; j++){ ... 阅读全文
posted @ 2013-10-09 13:43 JChen___ 阅读(134) 评论(0) 推荐(0) 编辑
摘要:快速排序思路1) 假设第一个元素为基准元素2) 把所有比基准元素小的记录放置在前一部分,把所有比基准元素大的记录放置在后一部分,并把基准元素放在这两部分的中间(i=j的位置)快速排序实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('quickSort', function(s, t){ var i=s, j=t, tmp; if(s i && this[j]>tmp) j--; ... 阅读全文
posted @ 2013-10-09 13:37 JChen___ 阅读(154) 评论(0) 推荐(0) 编辑
摘要:改进冒泡思路如果在某次的排序中没有出现交换的情况,那么说明在无序的元素现在已经是有序了,就可以直接返回了。改进冒泡实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('rBubbleSort', function(){ var len = this.length, i, j, tmp, exchange; for(i=0; ii; j--){ if(this[j] < th... 阅读全文
posted @ 2013-10-09 13:21 JChen___ 阅读(153) 评论(0) 推荐(0) 编辑
摘要:冒泡排序思想通过在无序区的相邻元素的比较和替换,使较小的元素浮到最上面。冒泡排序实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('bubbleSort', function(){ var len = this.lenght, i, j, tmp; for(i=0; ii; j--){ if(this[j] > this[j-1]){ tmp... 阅读全文
posted @ 2013-10-09 13:10 JChen___ 阅读(129) 评论(0) 推荐(0) 编辑
摘要:希尔排序思路我们在第 i 次时取gap = n/(2的i次方),然后将数组分为gap组(从下标0开始,每相邻的gap个元素为一组),接下来我们对每一组进行直接插入排序。希尔排序实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('shellSort', function(){ var len = this.length, gap = parseInt(len/2), i, j, tmp; wh... 阅读全文
posted @ 2013-10-09 00:12 JChen___ 阅读(144) 评论(0) 推荐(0) 编辑
摘要:二分插入排序思路先在有序区通过二分查找的方法找到移动元素的起始位置,然后通过这个起始位置将后面所有的元素后移。二分插入排序实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('bInsertSort', function(){ var len = this.length, i, j, tmp, low, high, mid; for(i=1; i=high+1; j--){ ... 阅读全文
posted @ 2013-10-08 23:49 JChen___ 阅读(193) 评论(0) 推荐(0) 编辑
摘要:插入排序思路从第二个元素开始和它前面的元素进行比较,如果比前面的元素小,那么前面的元素向后移动,否则就将此元素插入到相应的位置。插入排序实现Function.prototype.method = function(name, func){ this.prototype[name] = func; return this;};Array.method('insertSort', function(){ var len = this.length, i, j, tmp; for(i=1; i=0 && tmp < this[j]){ th... 阅读全文
posted @ 2013-10-08 23:39 JChen___ 阅读(241) 评论(0) 推荐(0) 编辑
摘要:2013年10月6号,我的前端博客园开通了。我将为他奉献我的余生。 阅读全文
posted @ 2013-10-06 21:02 JChen___ 阅读(184) 评论(1) 推荐(0) 编辑