(小白)函数二:函数的实参和形参(以封装n行m列的表为例)

<doctype! html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
      //封装表格工具
      //用js打印n行m列的表:
     function tabletool(n,m){
      document.write('<table border = 1 width:300 cellspacing= 0>');
      for(var i = 1; i<=n;i++){
         document.write('<tr>');
         for(var j =1 ;j<=m;j++){
             document.write('<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
         }
         document.write('</tr>')
      }
      document.write('</table>');
    }
    tabletool(8,9);
    </script>
</body>
</html>

控制台输出:

从上面的代码中发现,在定义函数时,我们给tabletool这个函数给了两个参数,大家会不会有“函数必须要有参数吗,”这样的疑问?

函数的参数不是必须要有的,是根据我们的实际需要来传参的;

很明显上面我们用函数封装的这个工具是需要传参的,因为不传参,我们的i、j就需要我们给出固定值了,当我们赋予i、j固定值时,我们不管调用多少次这个工具,它打印出来的是一模一样的表,如果我们想每次调用这个函数,让它每次打印出来的表的行列都不一样,这时候我们就需要给函数传参了,传参以后,可以让i=n,j=m,在调用函数时再给函数传参、赋值就ok了!

在实现多次打印表,并且每次表的行列不同的这个过程中,我们给tabletool这个函数一个传了两次参数,一次是在定义函数的时候,另一次是在调用函数的时候,so--

形参:定义函数时传递的参数;

实参:调用函数时传递的参数。

刚开始接触函数,总是会混淆形参和实参,为了更好的区分,我们来看看他们之间有什么区别:

1.形参必须是一个变量;

2.实参可以是变量必须有值、常量、表达式;

 

    tabletool(4,5);
    var row= 5,col =6;
    tabletool(row,col);
    tabletool(row,col+1);

输出结果:

3.实参和行参是一一对应的;

4.函数传递参数的过程中,是将实参的值传递给形参;

5.当实参的个数大于形参时,不会影响函数的运行,多余的实参会自动忽略;

6.当形参的个数大于实参时,不会影响函数的运行,多余的形参值为undefined.

posted @ 2019-01-15 15:33  kinoko-木子  阅读(524)  评论(0编辑  收藏  举报