javascript函数参数默认值在es6中支持直接用=设置,仅当传入undefined时生效,可为表达式或函数调用,结合解构赋值处理对象/数组更直观,注意null、0、false等falsy值不会触发默认值。

JavaScript 中直接在函数参数列表里写默认值,就能避免手动判断和赋值,让代码更简洁清晰。
基本语法:用等号设置默认值
ES6 开始支持在形参后直接用 = 指定默认值。当调用时对应参数为 undefined(注意:不是 null、false 或空字符串),就会启用默认值。
function greet(name = '游客', msg = '你好') { return `${msg},${name}!`; }greet(); // "你好,游客!"greet('小明'); // "你好,小明!"greet(undefined, '早上好'); // "早上好,游客!"
默认值可以是表达式或函数调用
默认参数的值支持运行时计算,比如调用函数、创建对象或执行逻辑,且每次调用都会重新求值。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
function createId(prefix = 'item-' + Date.now()) { return prefix; }function getConfig(options = {}) { return { timeout: 5000, ...options }; }- 注意:
function f(x = y) { let y = 1; }会报错——默认值作用域里不能访问后面声明的变量。
结合解构赋值处理对象/数组参数
对复杂参数结构,把默认值放在解构模式里,比层层判断更直观。
function connect({ host = 'localhost', port = 3000, secure = false } = {}) { /* ... */ }- 调用时传空对象或不传,都能正确取到默认值;传部分属性也不会报错。
- 数组同理:
function firstTwo([a = 0, b = 0] = []) { return [a, b]; }
注意 undefined 才触发默认值
null、0、false、'' 都是有效值,不会回退到默认值。需要“宽松”默认时,可用逻辑运算符或空值合并操作符(??)配合。
function log(level = 'info', msg) { console[level ?? 'info'](msg); }function handle(data = {}) { const cfg = data.config ?? { retry: 3 }; }- 慎用
||:它会把0、false等 falsy 值也覆盖掉,默认值可能意外生效。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










