javascript 历史栈
var Stack=function(limt_length){
this.stack=new Array();
this.limt=(limt_length)?limt_length:8;
}
Stack.prototype.push=function(o){
if(this.exist(o)){
this.remove(o);
this.stack.unshift(o);
}else{
this.stack.unshift(o);
}
while(this.stack.length>this.limt){
this.stack=this.stack.reverse();
this.stack.shift();
this.stack=this.stack.reverse();
}
};
Stack.prototype.pop=function(){
return this.stack.shift();
};
Stack.prototype.exist=function(o){
return (this.getIndex(o)>-1);
};
Stack.prototype.getIndex=function(o){
var ret=-1;
for(var i=0,len=this.stack.length;i<len;i++){
if(this.stack[i]==o){return i;}
}
return ret;
};
Stack.prototype.remove=function(o){
var _i=this.getIndex(o);
if(_i>-1){
var fArray=this.stack.slice(0,_i);
var bArray=this.stack.slice(_i+1,this.stack.length);
this.stack=fArray.concat(bArray);
}else{
throw new Eorr("栈中不包含此对象");
}
};
Stack.prototype.getCurret=function(){
return this.stack[0];
};
var s=new Stack();
var f=function(i){this.id=i;}
var tar=[];
for(var i=0;i<10;i++){
var _f=new f(i);
tar.push(_f);
s.push(_f);
}
var sss1=(function(){
var p="";
for(var i=0;i<s.stack.length;i++){
p=p+s.stack[i].id+","
}
return p;
})()
s.push(tar[1]);
var sss2=(function(){
var p="";
for(var i=0;i<s.stack.length;i++){
p=p+s.stack[i].id+","
}
return p;
})()
alert(s.getCurret().id+" "+s.pop().id)
alert(sss1)
alert(sss2)
相关文档:
一概述
在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类、Hashtable类等等。
目前在Javascript中,已经存在一些标准的类,例如Date、Array、RegExp、String、Math、Number等等,这为我们编程提供了许多方便。但对于复杂的客户端程序而言,这些 ......
1.认识数组
数组就是某类数据的集合,数据类型可以是整型、字符串、甚至是对象
Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能
1.1 定义数组
声明有10个元素的数组
var a = new Array(10);
此时为a已经开辟了内存空间,包含10个元素 ......
我想使用过ajax的都常见这样的代码:
<a href="javascript:doTest2();void(0);">here</a>
但这儿的void(0)究竟是何含义呢?
Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expr ......
我是一名程序员,使用Java语言进行管理软件开发工作。有一次开发项目中使用JavaScript来丰富用户体验效果,特地认真的学习了一下,从此对JavaScript产生了浓厚的兴趣。有机会参加了由电子工业出版社飞思公司举办的《JavaScript征途》读后感有奖召集活动,获得赠书学习。由于本人文学水平有限,此读后感的用词不当之处还望多 ......
JavaScript中的String是只读的,所以每次对String变量的操作都会在内存中产生一个零时变量,如果要对字符串进行大量的重复操作,性能和效率都会很低下,因此常用数组的方法操作字符串,即先把字符串都存储在数组中,然后使用join()方法连接字符串。
当然可以把这种方法再演变一下,在JavaScript中模拟StringBuffer类。
看 ......