`
文章列表
在判断函数类型时,我们通常使用typeof方法,一般情况下,它会得到我们所预想的效果。但是,有一些细节并不为我们所熟知。John Resig 在分析了这些细节之后,为我们提供了一个完美的解决方案,本文将作详细介绍: 一、传统方法不为人所知的细节 毫无疑问,在判断函数类型时,我们使用的是typeof方法,比如: function fn(){ //content } alert(typeof fn)//结果是"function"。 但是,该方法在一些浏览器中并不是像我们想像的那样工作。 1、Firefox2和Firefo ...
如果能用字面量创建正则就最好不过,显然有时我们不得不使用new RegExp()这种大消耗的创建方法,比如语法高亮与排版就大量用到正则表达式,要用到的patten越多,需要的时间就越长,火狐好像是12秒就发出警告,IE就直接假死。这时我们就需要利用组存大法要提高我们程序的性能了。 通常摆在我们眼前的如下两种选择来作为我们的容器,数组或对象。我这里选择前者,前者更轻量一点。下面我们就hasClass函数作性能改进。 原来的写法: var hasClass = function(ele,cls) {  return ele.className.match(new Reg ...

合并排序

    博客分类:
  • js
javascript版本: function merge(left, right){  var result = [];  while (left.length > 0 && right.length > 0){   if (left[0] < right[0]){     result.push(left.shift());//把最小的最先取出,放到结果集中   } else {     result.push(right.shift());   }  } return result.concat(left). ...

冒泡排序

    博客分类:
  • js
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。 由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。 ...

快速排序

    博客分类:
  • js
var qurckSort = function(array){   function qsort(array, begin, end){     if(end>begin){       //找到枢纽       var index = partition(array, begin, end);       qsort(array, begin, index-1);       qsort(array, index+1, end);     }   }   //定义三个内部函数   function partition(array, begin, ...

计数排序

    博客分类:
  • js
var countSort = function(array) {  var i, z = 0, count = [],  min = Math.min.apply({}, array),  max = Math.max.apply({}, array),  size = array.length;  //给新数组预填为零  for (i = min; i <= max; i++) {   count[i] = 0;  }  for (i=0; i < size; i++) {   count[array[i]]++;  }  f ...

希尔排序

    博客分类:
  • js
function shellSort(array) {     var j, i, v, h=1, s=3, k,n = array.length     while(h < n)       h=s*h+1;         while(h > 1) {       h=(h-1)/s;       for (k=0; k<h; k++)         for (i=k+h,j=i; i<n; i+=h, j=i) {           v=array[i];           while(true)          ...

组合排序

    博客分类:
  • js
var combSort = function(array){  var gap = array.length;  do{   gap = gap * 10 / 13   if(gap === 9 || gap === 10)     gap = 11   if(gap < 1){     gap = 1   }   var swapped = false;   for(var i=0;i<array.length-gap;i++){     var j = i + gap     if(array[i]>array[j]){ ...

鸡尾酒排序

    博客分类:
  • js
var cocktailSort= function(array) {  var top = array.length - 1, bottom = 0,flag = true,i, j;  while (flag) {   flag = false;   //从左到右到大,把最大的放到每次范围的最右边   for (i = bottom; i < top; i++) {     if (array[i] > array[i + 1]) {       swap(array, i, i + 1);       flag = true;     } ...
首先到这里下载其源码。里面东西挺多的,我们基本上可以把它放到两个文件夹就是。其中shCore.js与shCore.js与clipboard.swf放到js文件夹中,shCore.css还有另一个CSS文件(随你挑一个吧)与所有图片放到style文件夹中。如果你想高亮html或xml代码,那么就在js多放一个shBrushXml.js,如果要高亮javascript代码,就要多加一个shBrushJScript.js代码。最后就是在我们的网页上引用它们。 <link type="text/css" rel="stylesheet" h ...
绑定事件 var addEvent = function( obj, type, fn ) {   if (obj.addEventListener)       obj.addEventListener( type, fn, false );   else if (obj.attachEvent) {       obj["e"+type+fn] = fn;       obj.attachEvent( "on"+type, function() {           obj["e"+typ ...
在进入正题前,我们看一下浏览器对于键盘的一些默认事件,这有助于我们用javascript截获键盘事件。 在form中, submit的快捷键是 enter,reset的快捷键是 esc。不过在IE6,safari4,ff3.5,opera10,chrome中,按Enter,不但激发form的submit事件 ...
处理页面中的间歇无缝滚动新闻的时候,最常见的方法就是将滚动区内容复制追加一份,然后通过控制和判断滚动块的scrollTop来实现滚动停止效果。 其实在很多情况下通过节点操作实现间歇无缝滚动要更加容易些。 代码如下: <script language="javascript" type="text/javascript"> window.onload=function(){   var o=document.getElementById('box');   window.setInterval(function( ...
<script src="prototype.js"></script>   <script src="jquery.js"></script>   <script>     jQuery.noConflict();      // Use jQuery via jQuery(…)      jQuery(document).ready(function(){      jQuery(”div”).hide();      });      // Use ...
Node.js是一套用来编写高性能网络服务器的Java Script工具包,一系列的变化由此开始。 也许你还不知道,JavaScript现在已经成了一门可编写出效率极高的、可用于开发产品级web服务器的出色语言。起初我也不相信,但2009年启动的两个项目让这成为可能:CommonJS 和 Node 。 尽管JavaScript已经出现很长一段时间了,运用也很广泛(可以说是这一星球上最常用的编程语言),但它一直只是局限在浏览器的范围内。与此同时,一些框架试图将JavaScript引入到服务器端,这些框架有Aptana Jaxer ,(采用了SpiderMonkey的 ...
Global site tag (gtag.js) - Google Analytics