[将数组作为参数传递时,函数调用未显示未定义的值

问题描述 投票:0回答:2

我已经在JavaScript中创建了以下功能,该功能可以正常工作:

<script>
    function add(a, b, c) {
        document.write('A: ' + a + '<br>');
        document.write('B: ' + b + '<br>');
        document.write('C: ' + c + '<br>');
    }
add(10, 20);
</script>

输出:

A: 10
B: 20
C: undefined

但是,JavaScript中的以下功能未按预期方式工作,因此未显示undefined

<script>
    function addArray(a = [101]) {
        document.write('A: ' + a[0] + '<br>');
        document.write('B: ' + a + '<br>');
        document.write('C: ' + c + '<br>');
    }
    addArray([110]);
</script>

输出:

A: 110
B: 110

根据我的理解,输出应如下:

预期输出:

A: 110
B: 110
C: undefined

而且,在以上示例中,a[0]a之间有什么区别?

javascript arrays node.js parameters parameter-passing
2个回答
0
投票
 The difference between a[0] and a is that a[0] is displaying the first index value of an 
 array and a is displaying all the values of the array.

 Imagine A=[100,200]
 document.write('A: ' + a[0] + '<br>');
 Would write 100
 document.write('A: ' + a + '<br>');
 Would write 100,200

0
投票

从未声明c

    function addArray(a=[101],c) {
        document.write('A: ' + a[0] + '<br>');
        document.write('B: ' + a + '<br>');
        document.write('C: ' + c + '<br>');
    }
    addArray([110,120]);
© www.soinside.com 2019 - 2024. All rights reserved.