自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 归并排序

在js中,采用的是自上而下的归并排序。原理:注:我们将每次经行合并排序的两个数组看成左右数组。左数组中的内容在原始数组中则在右数组的左侧。第一步:将数组分割为数个一个内容为一组的数组。//这一步并不是我们所想的那样一下子把原始数组分割成功,而是通过step(步长)来获取原始数组中的每一项。第二步:先两两为一组进行合并排序,然后四个四个为一组进行合并排序,依次类推,如果有成单元素则放到最后

2017-05-28 21:11:54 403

原创 underscore.js中如何判断两个对象的内容相同

在js中,我们知道对象是引用类型,我们使用时定义的变量都是指向其内存地址。一个内存地址只对应一个对象,内存地址不一样,两个对象就是内容再相同也是不相等的。 有时候我们指的两个对象相等指的是内容相同,那么此时我们应该如何去比较两个对象内容相同呢,underscore.js给出了两个主要函数:eq和deepEq函数。 eq主要是进行基本的判断,比如+0和-...

2017-05-28 15:49:42 3174 2

原创 计数排序

function countSort(list){ var maxlen = Math.max.apply(this,list)+1;//用来获得数组list中最大的数+1 var len = list.length;//获得list的长度 var b = new Array(len);//初始化输出数组B,长度与list相同 var c = new Array(

2017-05-27 23:11:15 412

原创 for .... in 存在的兼容问题你造吗?

在js中for_in主要是用来遍历对象的可枚举属性,包括原型链上的属性。然而for_in在IE < 9下可能会出现问题。for_in要出现问题必须满足两个条件:1:IE < 9;2:某些不可枚举的属性被重写。在js中当一些不可枚举的属性比如toString被重写后,它会变成可枚举。然而当你碰上了IE<9,这些被重写的属性依旧是不可枚举无法使用for_in去遍历。那么如何在IE<9的情况下

2017-05-23 18:14:00 4964

原创 js的垃圾回收机制

在js中局部变量只存在函数执行的过程中,在执行过程中,会为这些局部变量在栈或者堆上分配相应的空间储存它们的值,当执行完毕后,这些局部变量便会备销毁,用来释放内存空间。而这一操作是由垃圾回收机制完成,垃圾回收机制会跟踪那些变量有用,那些变量无用,然后对没有的变量进行销毁回收内存。这一实现在浏览器中主要有两种实现方式1、标记清除 这一方式是js中最常用的垃圾回收方式。当变量进入某一

2017-05-23 17:53:36 974

原创 js中的数字表示范围

在js中Number类型的实质是64为浮点数,javaScript所能表示的数值范围为正负1.7976931348623157乘以10的308次方,其最小所能表示的小数为正负5乘以10的负324次方,这两个边界值可以分别通过访问Number对象的MAX_VALUE属性和MIN_VALUE属性来获取.对于整数,在ECMAScript5规范中规定,无论正负数的值都不能大于2^53,在这个范围内,j

2017-05-22 14:45:08 4284

原创 underscore.js中的类型检测

在js中我们通常判断类型通常用 typeof ;但是这种判断方法往往得不到具体的类,比如typeof []得到是object而不是Array。普通类型:在underscore.js中使用的是 Object.prototype.toString.call(obj)来对一些普通类型进行判断。Object.prototype.toString.call(obj)会返回obj所属的具体类型。如:

2017-05-22 11:03:42 508

原创 underscore.js中为什么用void 0来验证undefined

在javascript中,undefined既不是关键字,又不是保留字。它只是全局对象的一个属性,可以被重写。例如:(function(){ var undefined = 1; console.log(undefined);//1})()因为undefined有如此弊端,所以不能用undefined去检测一个值是否为undefined类型。为了能够完美检测undefine

2017-05-21 10:34:57 424

原创 插入排序的原理

插入排序,一般以打牌排列手牌为例子。其实我感觉用两个数组表示更好理解,即使在整个代码中只有一个数组,但是可以抽象成两个数组。以要进行插入排序的数组内容之前的内容为新数组,原始数组为旧数组。old代表未排序的旧数组;new代表排序后的新数组。new数组中的内容是从old数组中一点一点插入进来并且每插一次进行一次排序,因此new数组永远是有序的。我们默认new数组中已经插入了old数组的第一项

2017-05-20 21:09:49 893

原创 javascript的性能优化

众所周知,js是一种解释型语言,执行速度要比编译型语言慢得多。为提高性能,我们可以通过以下方法改进代码的整体性能1、减少作用域链上的访问在js中访问全局变量总比访问局部变量要慢,因为要遍历作用域链。 1.1、避免全局查找。 将全局变量赋值给局部变量。例如下面这个例子 function updateUI() { var imgs =

2017-05-20 16:11:33 433

原创 underscore.js中 cb 函数与optimizeCb函数

在解读underscore.js源码的时候,首当其冲地便遇上了这两个函数,对于哦呜这么个小白来说,这段代码的作用和意义真的如同天书难懂。废话不多说,我们先归纳一下整个underscore.js中都那些函数用到了这两个函数1、optimizeCb(optimize:使最优化和尽可能地完善)   cb 、 _.each 、_.times2、cb _.map 、 _.filter 、 _.r...

2017-05-20 14:53:53 2262

原创 underscore.js如何实现全局变量和链式调用

underscore.js如何得到全局变量 _ :在整个Underscore.js中,没有通过new便能得到_对象。其实,在underscore.js中是以函数为对象(function也是对象),将所有的方法都是挂载在这个构造函数上面,然后将这个构造函数挂载在全局变量上,这样便不需要通过new去使用_。underscore.js的链式调用:如果要实现链式调用,必须要在每次的调用后返回

2017-05-18 13:47:56 1083

原创 js中如何判断+0与-0

在js中我们一般认为正负0是不相等的,但是 -0 == +0 会返回true,那么怎么判断正负0代码如下(判断-0)function(num){return num == 0 && 1 / num }(判断+0)function(num){return num == 0 && 1 / num > 0 }

2017-05-17 09:42:04 5601

原创 js中的的new操作

function People(){};var xiaoming = new People();通过new操作我们得到一个xiaoming的实例,那么在此过程中new操作符执行了那些操作。1、创建一个空对象。2、将空对象的原型指向我们要new的对象构造函数。3、将我们创建的空对象绑定到构造函数上。4、将空对象返回。

2017-05-11 09:57:24 1923

原创 浏览器同源策略的行为限制以及规避方法

本文参考自阮一峰老师的文章链接在此http://www.ruanyifeng.com/blog/2016/04/cors.html一、简单介绍同源策略,即三个相同: 协议相同,域名相同,端口相同。二、同源策略主要带来三个方面的行为限制: 1、cookie,localstorage和IndexDB无法读取 2、DOM无法获取 3、Ajax请求不能发送三、规避方法 1、cookie

2017-05-10 15:11:50 5304

原创 common.js与AMD

common.js是同步模块加载,AMD是异步模块加载。目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。本系列的第三部分,将通过介绍require.js,进一步讲解AMD的用法,以及如何将模块化编程投入实战。AMD也采用require()语句加载模块,但是不同于CommonJS,它要求两个参数:  require([mo

2017-05-10 13:43:43 405

原创 split的正则用法

参数:第一个:指定删除的字符模式;第二个:指定返回数组的长度

2017-05-02 14:46:36 936

原创 解读replace的第二个参数为函数

replace代码:输出结果:参数解析:match:每次的匹配项;pos:匹配项在字符串中的位置;orginalText:原始字符串

2017-05-02 14:40:07 1514

原创 readolny和disabled区别

readonly和disabled 都是表单中的两个属性。共同点:元素节点内容无法编辑和获取焦点不同点:1、readonly只能用于input、textarea标签,而disabled可以用在所有表单标签上。       2、readonly设置的标签内容可以跟随post/get发送出去,disabled设置的标签内容不能被传送出去。

2017-05-02 13:14:20 424

空空如也

空空如也

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

TA关注的人

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