如何控制记录我传递给此测试函数的每个参数?

时间:2013-10-31 04:48:58

标签: javascript jquery

这是demo

我正在尝试连续输出abc。但是console.log()只是给了我第一个值。

function test(values){ 
    console.log(values);
} 

test('a', 'b', 'c'); 

7 个答案:

答案 0 :(得分:4)

您想要arguments

console.log( arguments );

请记住arguments,虽然看起来像一个数组,但实际上是一个对象。如果需要,您可以将其转换为数组:

var args = Array.prototype.slice.call(arguments);

或者,正如alex在评论中指出的那样,使用jQuery你可以做到:

$.makeArray(arguments)

答案 1 :(得分:2)

使用arguments

Working Fiddle

function test(values) {
    var i;
    for (i = 0; i < arguments.length; i++) {
        console.log(arguments[i]);
    }
}

test('a', 'b', 'c');

答案 2 :(得分:0)

function test(a,b,c){ 
    console.log(a,b,c);
} 

test('a', 'b', 'c'); 

您正在创建一个函数,因此在调用此函数时,该函数的参数应该匹配。因此,如果您需要三个参数,那么只需在函数中添加三个参数即可。

答案 3 :(得分:0)

这是因为你有一个只接受values的单个参数的函数。如果您想要传递abc,请将您的函数更改为接受三个值:

function test(val1, val2, val3){
    console.log(val1 + val2 + val3);
} 

或将abc存储在数组中。在您的代码中,参数的数量不匹配。

答案 4 :(得分:0)

您可以使用javascript变量参数

function blah() {
   console.log(arguments);
}

blah(1, 2); // [1, 2]
blah([1, 2], [3]); // [[1,2], [3]]
blah(1, [2, 3], "string"); // [1, [2, 3], "string"]

答案 5 :(得分:0)

你的功能只有一个参数,你给它三个参数。这不会像数组一样 - 你必须修改代码:

function test(values){ 
    for( var i=0; i<values.length; i++)
    alert(values[i]);
} 

test(['a', 'b', 'c']); 

答案 6 :(得分:0)

快速回答是使用

function a( b, c, d){
 console.log(arguments);
}

a(5, 8, 9, 9, 9)将输出

[5, 8, 9, 9, 9]
顺便说一句,除了console.log()

之外,还可以获取其他功能的战利品
  • console.log(myvar,“Logged!”);
  • console.info(myvar,“Logged!”);
  • console.warn(myvar,“Logged!”); console.debug(myvar,“Logged!”);
  • console.error(myvar,“Logged!”);