二分查找
function binarySearch(arr,key){
var start=0;
var end=arr.length-1;
while(start+1<end){
var mid=start+Math.floor((end-start)/2);
if(arr[mid]===key)
return mid;
if(arr[mid]>key)
end=mid
else
start=mid}
return -1;}
如果一对兔子每月生一对兔子;一对新生兔,从第二个月起就开始生兔子;假定每对兔子都是一雌一雄,试问一对兔子,第n个月能繁殖成多少对兔子?(使用callee完成)
var result=[];
function fn(n){ //典型的斐波那契数列
if(n==1){
return 1;
}else if(n==2){
return 1;
}else{
if(result[n]){
return result[n];
}else{//argument.callee()表示fn()
result[n]=arguments.callee(n-1)+arguments.callee(n-2);
return result[n];
} }}
快速排序
function quickSort(arr){
//如果数组<=1,则直接返回
if(arr.length<=1){return arr;}
var pivotIndex=Math.floor(arr.length/2);
//找基准,并把基准从原数组删除
var pivot=arr.splice(pivotIndex,1)[0];
//定义左右数组
var left=[];
var right=[];
//比基准小的放在left,比基准大的放在right
for(var i=0;i<arr.length;i++){
if(arr[i]<=pivot){
left.push(arr[i]);
}
else{
right.push(arr[i]);
}
}
//递归
return quickSort(left).concat([pivot],quickSort(right));
}
小狗xx dog 叫声wow 看到主人叫yelp
function Dog(){};
Dog.prototype.wow=function(){
console.log("wow");}
Dog.prototype.yelp=function(){
this.wow();}
var xx=new Dog();
yy.yelp();
小狗xm Maddog 叫声wow 0.5秒叫一次yelp
function MadDog(){};
MadDog.prototype=new Dog();
MadDog.prototype.yelp=function(){
var me=this;
setInterval(function(){
me.wow();},500)};
var madDog=new madDog();
madDog.yelp();
寄生式继承
在这里插入代码片