Вызов функции не отображает неопределенное значение, когда массив передается как параметр - PullRequest
0 голосов
/ 02 апреля 2020

Я создал следующую функцию в 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 в приведенном выше примере?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020
 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 голосов
/ 02 апреля 2020

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]);
...