+-
                                
                                    
                                
                                
                                    
                                
                                
                                    
                                         
                                        
                                        
                                        
                                         
  
   
    
     
   
  
  
   
    
     
   
  
  
 
  
   
    
     
   
  
  
   
    
     
   
   
    
     
   
   
    
     
   
  
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                            
                                        
                                        
                                    
                                
                            
                        
以下JavaScript函数应在显示undefined值时应显示实际值:
<script>
    function addArrayNew(a = [101], c) {
        document.write('A: ' + a[0] + '<br>');
        document.write('B: ' + a + '<br>');
        document.write('C: ' + c + '<br>');
    }
    addArrayNew(110);
</script>
手动输出:
A: undefined
B: 110
C: undefined
预期输出:
A: 101
B: 101
C: 110
      1 
     
投票
 
   投票
在您的示例中,110作为第一个(也是唯一一个)参数传递,因此它将覆盖由a插入的c(将变为undefined)。最好将可选参数放在最后,然后可以将更多或更少的参数传递给函数:
<script>
    function addArrayNew(c, a = [101]) {
        document.write('A: ' + a[0] + '<br>');
        document.write('B: ' + a + '<br>');
        document.write('C: ' + c + '<br>');
    }
    addArrayNew(110);
</script>
      0 
     
投票
 
   投票
这是由于addArrayNew的功能描述将a作为第一个参数,并将c作为第二个参数。因此,无论您传递的是addArrayNew(110)的第一个值(仅设置为a),还是传递addArrayNew(110, 100)的第一个值,然后是c。如果您只想发送第二个参数并想将a设置为默认值,则可以像下面这样传递undefined:
function addArrayNew(a = [101], c) {
  document.write('A: ' + a[0] + '<br>');
  document.write('B: ' + a + '<br>');
  document.write('C: ' + c + '<br>');
}
addArrayNew(undefined, 110);通过传递undefined,我们实际上是在强迫a使用默认值。但是好的做法是始终使用最后一个可选参数,因此默认情况下将它们设置为undefined,例如:
function addArrayNew(c, a = [101]) {
  document.write('A: ' + a[0] + '<br>');
  document.write('B: ' + a + '<br>');
  document.write('C: ' + c + '<br>');
}
addArrayNew(110);这里,使用addArrayNew(110)或addArrayNew(110, undefined)将给您相同的结果。但是,当您将拥有大量的od参数时,您真的可以理解最后使用默认值的重要性:
function addArrayNew(a, b=1, c=2, d=3, e=4, f=5) {
  document.write(`${a} - ${b} - ${c} - ${d} - ${e} - ${f}`);
}
addArrayNew(110); 
                