!function(n){  
        if(!(n in rv)){  
            l = rv[(n-1)]||arguments.callee(n-1);  
            r = rv[(n-2)]||arguments.callee(n-2);  
            rv[n] = l+r;  
        }  
        return rv[n];  
    }(n);   !function这个是什么意思?

解决方案 »

  1.   


    var rv = [1,1], l, r;
    var x = !function(n){  
            if(!(n in rv)){  
                l = rv[(n-1)]||arguments.callee(n-1);  
                r = rv[(n-2)]||arguments.callee(n-2);  
                rv[n] = l+r;  
            }
            return rv[n];  
        }(10);
    alert(x);
    alert(rv);PS:函数是生成一个斐波拉契数列,数列长度为函数的参数+1
      

  2.   

    其实就和function a(n){
    //方法体
    }// n声明并赋值a(n);
      

  3.   

      l = rv[(n-1)]||arguments.callee(n-1);  
                r = rv[(n-2)]||arguments.callee(n-2);  这里的 ||是什么作用?请高人指点
      

  4.   


    ||相当于?:的简写。
     r = rv[(n-2)]||arguments.callee(n-2); 
    //等价于
     r = rv[(n-2)] ? rv[(n-2)] : arguments.callee(n-2); 
    //等价于
    if(rv[(n-2)]){
        r = rv[(n-2)]
    }else{
        r = arguments.callee(n-2); 
    }
      

  5.   


    javascript 与或运算总结