document.write一个返回的函数?

时间:2014-02-08 01:01:31

标签: javascript

尝试定义一个函数maxOfThree(),它将三个数字作为参数并返回其中最大的一个。

function maxOfThree(a,b,c){

    if(a > b || c)
        return a;
    else if (b > a || c)
        return b;
    else 
        return c;

    document.write(maxOfThree(a,b,c));

}
maxOfThree(9,7,18);

2 个答案:

答案 0 :(得分:0)

问题

  1. 找到最大值的逻辑不正确。
  2. 您的函数在return语句
  3. 之前使用document.write

    修改后的代码

    function maxOfThree(a,b,c){
        if(a > b && a > c)
            return a;
        else if (b > a && b > c)
            return b;
        else 
            return c;
    }
    document.write(maxOfThree(9,7,18));
    

答案 1 :(得分:0)

您可以将maxOfThree重写为:

function maxOfThree(a, b, c) {
    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FMath%2Fmax
    return Math.max(a, b, c);
}

如果你需要使用document.write,我会这样做:

function maxOfThree(a, b, c) {
    return Math.max(a, b, c);
}

document.write( maxOfThree(1,2,3) );

但如果您需要提供数据,我建议您使用console.log进行调试并写入DOM节点:

var n_max = maxOfThree(1,2,3);
var d_text = document.createTextNode(n_max);

document.body.appendChild( d_text );

当你调试时:

var n_max = maxOfThree(1,2,3);
console.log(n_max);

如果你想创建一个函数maxOfN,可以这样做:

function maxOfN() {
    // Call the Math.max function with all the arguments that maxOfN gets and also set the correct context (Math).
    return Math.max.apply(Math, arguments);
}

console.log( maxOfN(1) ) // 1
console.log( maxOfN(1,2,3,4,5) ) // 5