function fnAdd(n){
    return n?n*agurments.callee(n-1):1;
}
var n =fnAdd(5);
alert(n);
谁能告诉我这return返回的是什么意思,有“?”、有“:”这些符号代表什么意思啊?

解决方案 »

  1.   

    三元运算符。。判断n存在与否。。存在就执行n*agurments.callee(n-1)
    不存在返回1
      

  2.   

    三元运算符,
    比如这个例子,给y赋值 var x = 1;
    var y;
    if( x == 1 ){
    y = 100
    } else {
    y = 0
    }
    用三元 可以这样
    y = (x == 1) ? 100 : 0;
      

  3.   

    n?n*agurments.callee(n-1):1; 这其实是一个三元表达式的写法,意思是说 问n 等于不等于 空, 如果不等于空那就return n*agurments.callee(n-1) 的值, 否则就return "1"   比如如果测试 n=fnADD(5)  结果=return n*agurments.callee(n-1) 如果n=fnADD(0)  结果=return 1 
      

  4.   

    条件表达式:if else 的简写版
      

  5.   

    我补充一下  return 的意思是返回一个结果  虽然没有标明返回值 但是在别的方法中调用仍然可以获取到结果
      

  6.   


    return n?n*fnAdd(n-1):1三元运算符很简单的就等于if(n){
    return n*agurments.callee(n-1);
    }else{
    return 1;
    }agurments.callee(n-1) 这个还没人说呢。 这个是重新执行当前的函数一遍,是一个阶乘函数,也可以改成function fnAdd(n){
      return n?n*fnAdd(n-1):1;
    }
    var n =fnAdd(5);
    alert(n);