跳到主要内容

Function 函数

默认值

1.基本功能

  • 如果调用函数时没有提供参数,或者参数是 undefined,函数将使用默认值
function greet(name = "Guest") {
return "Hello, "+ name
}

logd(greet()); // 输出: Hello, Guest!
logd(greet("Alice")); // 输出: Hello, Alice!

2.默认值可以引用前面的参数

  • 默认值可以依赖于前面的参数
function test(a, b = a) {
logd(a,b)
}
test(1) // 输出: 1,1

function createUser(name, role = name === "Admin" ? "Administrator" : "User") {
logd( name, role )
}
createUser("Admin") // 输出: Admin,Administrator
createUser("Alice") // 输出: Alice,User

3.与 arguments 对象的交互

  • 默认参数不会影响 arguments 对象
function example(a = 1, b = 2) {
logd(arguments[0]); // 输出: undefined
logd(arguments[1]); // 输出: undefined
logd(a, b); // 输出: 1, 2
}

example();

剩余参数

1. 基本功能

  • 剩余参数使用三个点 ... 表示,它将所有剩余的参数收集到一个数组中
function sum(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}

logd(sum(1, 2, 3)); // 输出: 6
logd(sum(1, 2, 3, 4, 5)); // 输出: 15

2. 函数的 length 属性

  • 函数的 length 属性返回函数期望的参数数量,不包括剩余参数
function example(a, b, ...rest) {
logd(rest);
}

logd(example.length); // 输出: 2

3. 剩余参数与普通参数结合使用

  • 剩余参数可以与普通参数一起使用,但剩余参数必须放在最后
 function greet(greeting, ...names) {
return greeting + ', ' + names.join(', ')
}

logd(greet("Hello", "Alice", "Bob", "Charlie")); // 输出: Hello, Alice, Bob, Charlie!