2015-12-13 108 views
-3

打印所有JavaScript函数

x([1, 2, 3, 1, 2, 3], 2, 3); 
 

 
function x(a){ 
 
    console.log(a); 
 
    }

参数为什么结果[1,2,3,1,2,3]而不是([1,2,3,1,2,3],2,3)

+1

你的手在三个参数的功能,但赶上一个先上。你记录第一个。第一个参数包含数组。 – arkascha

回答

2

为什么结果[1,2 ,3,1,2,3]和不([1,2,3,1,2,3],2,3)

因为您所呼叫的x功能时通过3个参数:

  • 参数1:[1,2,3,1,2,3](整数的一个JavaScript ARRA)
  • 参数2:2(一个整数)
  • 参数3:3(一个整数)

但是您的x功能只一个参数:

function x(a) { 
    console.log(a); 
} 

所以基本上这里打印的是什么是您传递给此函数的第一个参数的值。

如果要考虑到其他参数,你可以这样做:

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

您正在向x函数传递三个参数,但只接受一个参数。您传递的数组用作函数中的a参数,但在数组外部传递了两个数字,并且您在函数或日志命令中根本没有引用它们。


你可以改变你的函数签名就可以接受所有的3个参数:

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

另外,如果你想登录的传递给函数,即使你不知道的参数所有会通过多少个,您可以使用每个函数中可用的变量arguments。它包含传递给函数的所有参数数组:

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

var arr = ['a', 'b']; 
x(arr, 3, 4); // output: [['a', 'b'], 3 ,4] 
有关 arguments变量的使用

更多信息可以在这里找到: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments