函数参数

函数参数有两种:形参和实参。

形参:在定义函数时,把函数括号中的变量名称为形式参数,简称形参或虚拟参数。

实参:在调用函数时,把函数括号中的参数称为实际参数,简称实参。实参可以为常量、变量和表达式。

实参为常量:

function sum(num1,num2){//num1,num2为形参
	return num1 + num2;
}

sum(1,2);//1,2为实参;实参为常量
(function (a,b) { //a,b为形参
	return a + b;
})(3,4);//3,4为实参;实参为常量
function compare(a,b){
	return (a>b?a:b);
}
console.log(compare(5,9));//返回值为9

实参为变量:

function welcom(name){//name为形参
	return "hello," + name;
};
let somebody = "Jim";
welcom(somebody);//somebody为实参;实参为变量

实参为表达式:

var a =  function(num1,num2){
	return num1 + num2;
};

var b = function(x,y){
	return x + y;
}

b(a(1,2),2);//返回值为:5;实参a(1,2)为表达式

在实际开发中,经常会出现实参数量少于形参数量的情况,但是在函数内部依然可以使用这些形参,这是因为在定义参数时,已经对它们进行了初始化,并设置了默认值。在调用函数时,如果用户不传递或者少传递参数,则会采用默认值。而形参数量少于实参数量的情况比较少见,这种情况一般发生在参数数量不确定的函数中。

默认参数(ES6的默认参数特性)

function sum(num1,num2 = 5){//num1,num2为形参
	return num1 + num2;
}

sum(2);//返回值7;实参num2没有值,使用默认值5
function sum(num1,num2=5){//num1,num2为形参
	return num1 + num2;
}

sum(2,3);//返回值5;实参num2有值

形参没有默认值,且实参个数少于形参

function sum(num1,num2){
	return num1 + num2;
}

sum(2);//NaN,

上面的sum()函数传入参数比定义参数个数少,此时JS也不会报错,缺少的参数会使用 undefined 代替。例如我们使用sum(2)调用函数。这样num1的值为2,而num2会被设置为undefined,这样结果就是2+undefined,所以返回就是NaN。

如果有必要,可以验证参数是否是undefined,并且提供一个默认值。

function sum(param1,param2){
    if(param2 === undefined){
    	param2 = 2;
    }
	return param1 + param2;
}

sum(2);//4

这种方式也叫"鸭子类型理论"。但是这种方式,没有上面的通过ES6设置默认参数值更直白明了。

解构参数:

采用ES6解构的方式可以更加直观便捷的为函数传递对象参数

function sayName({ firstName, lastName } = {}) {
  console.log( firstName + ' ' + lastName );// 注意这里可以直接访问到两个解构赋值的变量
}
let person = {
  firstName: 'Stephen',
  lastName: 'Curry'
}
sayName(person); // Stephen Curry

解构参数还可以是默认值:

// 右边的{}是函数参数的默认值,左边的{firstName = 'foo', lastName = 'bar'}是函数的参数,也是变量声明的地方。
// 变量分别有默认值,当不传递任何参数给函数的时候,变量就会使用默认值。
function sayName({ firstName = 'foo', lastName = 'bar'} = {}) {
  console.log( firstName + ' ' + lastName );
}
let person = {
  wrongFirstName: 'Stephen',
  lastName: 'Curry'
}
sayName(person); // foo Curry

箭头函数中,没有自己的 arguments 和this,如果想获取函数的arguments对象就不要使用箭头函数

let sumArgs = (a,b)=>{
    return a + b;
    console.log(arguments);
}
sumArgs(1,2);//Uncaught ReferenceError: arguments is not defined

剩余参数

剩余参数允许我们将一个不定数量的参数表示为一个数组

function sumbNumbers(...numbers){
    return numbers.reduce(function(sum,every){
    	return sum += every;
    });
}
sumbNumbers(1,1,1);//3
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
函数参数是在定义函数时用于接收传递给函数的值或变量的占位符。在Python中,函数参数有以下几种类型: 1. 位置参数(Positional Arguments):按照定义函数时的顺序,依次传递给函数的参数。调用函数时,传递的参数值与函数定义时的参数一一对应。 2. 默认参数(Default Arguments):在定义函数时,为参数提供默认值。调用函数时,如果不传递该参数的值,则使用默认值。 3. 关键字参数(Keyword Arguments):调用函数时,通过参数名来指定传递的参数值,不需要按照定义函数时的顺序传递。 4. 可变长度参数(Variable-Length Arguments):可以接受任意数量的参数。在函数定义时使用星号 (*) 来表示,有两种形式: - *args:接受任意数量的位置参数,以元组(tuple)的形式传递给函数。 - **kwargs:接受任意数量的关键字参数,以字典(dictionary)的形式传递给函数。 下面是一个示例,展示了不同类型的函数参数: ```python def greet(name, message="Hello"): print(f"{message}, {name}!") def calculate_sum(*args): total = sum(args) print(f"The sum is: {total}") def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") # 调用函数 greet("Alice") # 使用默认值 greet("Bob", "Hi") # 提供自定义值 calculate_sum(1, 2, 3, 4, 5) print_info(name="Alice", age=25, city="New York") ``` 输出结果为: ``` Hello, Alice! Hi, Bob! The sum is: 15 name: Alice age: 25 city: New York ``` 这是函数参数的基本概念和用法,希望能对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值