javascript核心技术(十三)函数的参数 实参 形参 默认值

[复制链接]
查看: 3798|回复: 31
发表于 2023-1-22 13:14:30 | 显示全部楼层 | 阅读模式
通过前面三节的讲解,我们已经知道如何声明并调用函数,可是,我们发现一个问题,当函数声明后,每次调用的结果都是一样的,而我们最终想要达到的目的是,通过给函数体传递参数来控制函数的输出结果。

本节我们就来讲一下如何给函数传参的问题。

下面我们再封装一个函数,该函数的功能是:计算1到100之间数字相加的和,如下:

function fn(){
    var total = 0;
    for(var i=1; i<=100; i++){
        total += i;
    }
    console.log(total);

}

fn();

javascript核心技术(十三)函数的参数 实参 形参 默认值
可以看到,该函数的执行结果为5050


假如,现在我们想要算出1到200之间数字的和怎么办呢?我们可以这样做,如下:
function fn(n){
    var total = 0;
    for(var i=1; i<=n; i++){
        total += i;
    }
    console.log(total);
}
//调用函数并且传参数
fn(100); //  1-100
fn(200); //  1-200


javascript核心技术(十三)函数的参数 实参 形参 默认值

解释一下:
  1. 上面我们在定义函数时,声明了一个参数n 。调用函数时给函数传了一个值,函数体内又使用了这个值,这就相当于给函数体内的n赋值了,这就是传参的全过程。
  2. 定义函数时,放在函数名称小括号中的,叫做形参(形式参数),个数随意
  3. 调用函数时,放在函数名称小括号中的值,叫做实参(实际参数),个数随意
  4. 多个参数用逗号隔开,实参和形参按照顺序 一一对应
复制代码

下面,我们继续优化上面的函数,让它实现计算m到n之间数字的和。通过本实验,希望大家可以彻底理解函数传参的完整原理,如下:
//定义一个函数,计算 m - n 之间的数的和
//定义函数时,声明形参m和n,调用函数时,传入实参,等同于给参数m和n赋值
function fn(m,n){
    // console.log(m, n);
    var total = 0;
    for(var i=m; i<=n; i++){
        total += i;
    }
    console.log(total);

}
//调用函数并且传参数
// var a = 100, b=200;
// fn(a,b);
fn(100, 200);
fn(200, 300);

//形参和实参个数,可以不相同
//实参少传了,函数本身语法没错,但是函数里面的代码可能报错
fn(200, 300, 400);
fn();


javascript核心技术(十三)函数的参数 实参 形参 默认值

到此,关于函数传参的问题就讲完了,下面我们看一下参数默认值的问题。
关于默认值的设置分为ES5语法的设置方法和ES6的设置方法。
ES5的参数默认值
<!DOCTYPE html>
<html>

<head>
        <title>ES5中参数默认值的设置方法</title>
</head>

<body>
        <script type="text/javascript">
        //ES5中,调用时如果不传实参,形参的值是undefined,所以可以在函数内做一个判断,如果是undeifned则给形参赋个值。
        function f2(username){
                var username = username || 'tom';
                console.log(username)
        }
        f2();
        f2('berry');
        </script>
</body>

</html>

javascript核心技术(十三)函数的参数 实参 形参 默认值

ES6的参数默认值
//定义函数时给形参赋值,意思是:当没有实参传入时,这个值就是默认调用的值。
function fn(m=100,n=200){
    // console.log(m, n);
    var total = 0;
    for(var i=m; i<=n; i++){
        total += i;
    }
    console.log(total);

}
//传入实参,按照实参进行运算
fn(200, 300);
//不传实参,按照默认参数进行运算
fn();

javascript核心技术(十三)函数的参数 实参 形参 默认值




ok,本节到此结束,以上所讲的内容,大家务必扎实掌握,我们讲的这些都是最基本的语法规则。



易博软件介绍
发表于 2023-2-15 03:40:17 | 显示全部楼层
经验之谈....受益匪浅  

0

主题

15

帖子

8

积分

年费会员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
8
发表于 2023-2-26 08:41:28 | 显示全部楼层
我让人受用,人之间就应该这样交流。

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-3-9 20:14:18 | 显示全部楼层
^当被这个浮躁的世界冲昏头脑的时候,我们应该及时的清醒下来反思!  我相信静水流深!
0 该用户已被删除
发表于 2023-3-20 14:50:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

20

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-3-26 23:51:48 | 显示全部楼层
写的不错。很受用

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-4-1 22:08:12 | 显示全部楼层
有同感

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-6 19:14:43 | 显示全部楼层
你用的是VB,他上面的大概是C吧  

0

主题

22

帖子

12

积分

营销入门

Rank: 2

积分
12
发表于 2023-4-11 16:08:57 | 显示全部楼层
太精辟了,谢谢

0

主题

6

帖子

3

积分

营销入门

Rank: 2

积分
3
发表于 2023-4-16 08:07:35 | 显示全部楼层
很不错,看了让我感触很深,让我知道了自己的弱点,和高手的差距,促使我学习,学习,再学习。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表