推荐答案
默认参数(Default Parameters)是 ES6 引入的一项功能,允许在函数定义时为参数设置默认值。如果调用函数时没有传递该参数,或者传递的参数值为 undefined
,则会使用默认值。
function greet(name = "Guest") { console.log(`Hello, ${name}!`); } greet(); // 输出: Hello, Guest! greet("Alice"); // 输出: Hello, Alice!
本题详细解读
1. 默认参数的基本用法
默认参数允许在函数定义时为参数指定默认值。如果调用函数时未传递该参数,或者传递的值为 undefined
,则会使用默认值。
function multiply(a, b = 1) { return a * b; } console.log(multiply(5)); // 输出: 5 console.log(multiply(5, 2)); // 输出: 10
2. 默认参数与 undefined
如果传递的参数值为 undefined
,也会触发默认值的使用。
function sayHello(name = "World") { console.log(`Hello, ${name}!`); } sayHello(undefined); // 输出: Hello, World! sayHello("Alice"); // 输出: Hello, Alice!
3. 默认参数可以是表达式
默认参数不仅可以是简单的值,还可以是表达式,甚至是函数调用。
-- -------------------- ---- ------- -------- ----------------- - ------ --- - -------- ------ - - ------------------ - ------ - - -- - --------------------- -- --- -- ------------------- ----- -- --- --
4. 默认参数的作用域
默认参数的作用域是独立的,不会受到函数体内变量的影响。
let x = 1; function foo(y = x) { let x = 2; console.log(y); } foo(); // 输出: 1
5. 默认参数的惰性求值
默认参数的值是在函数调用时求值的,而不是在函数定义时。
let count = 0; function increment(value = ++count) { return value; } console.log(increment()); // 输出: 1 console.log(increment()); // 输出: 2
6. 默认参数与解构赋值结合
默认参数可以与解构赋值结合使用,提供更灵活的参数处理方式。
function createUser({ name = "Anonymous", age = 18 } = {}) { console.log(`Name: ${name}, Age: ${age}`); } createUser(); // 输出: Name: Anonymous, Age: 18 createUser({ name: "Alice", age: 25 }); // 输出: Name: Alice, Age: 25
默认参数是 ES6 中非常实用的特性,能够简化代码并提高函数的灵活性。