JavaScript默认参数是ES6原生特性,仅在参数为undefined时生效,null/0/''等falsy值不触发;支持表达式和函数调用求值,可引用前面参数但不可循环依赖,需注意??与||语义差异。

JavaScript 默认参数不是靠 arguments 或手动判断模拟的,而是语言原生支持的语法特性,ES6(ES2015)起就能直接在函数声明中写 param = defaultValue。
函数定义时直接写 = 设置默认值
最常用也最直观的方式:在参数列表里用等号赋值。它只在对应参数为 undefined 时生效,null、false、0、'' 都不会触发默认值。
-
function greet(name = 'Guest') { return `Hello, ${name}`; }——greet()返回"Hello, Guest",但greet('')返回"Hello, " - 多个参数可混合设置:
function connect(host, port = 8080, timeout = 5000) { ... } - 默认值可以是表达式,甚至调用函数:
function log(time = Date.now(), msg = generateDefaultMsg()) { ... },每次调用都会重新求值
undefined 是唯一触发默认值的值
很多人误以为“falsy 值”会触发默认值,其实不会。这是最容易踩的坑。
-
myFunc(null)→null被传入,不使用默认值 -
myFunc(0)→0被传入,不使用默认值 - 想兼容
null或其他 falsy 值?得手动处理:function fn(val) { val = val ?? 'default'; ... }或val != null ? val : 'default' - 注意
??(空值合并)和||的区别:0 || 'default'是'default',但0 ?? 'default'是0
默认参数能访问前面已声明的参数
参数从左到右求值,后面的默认值可以引用前面的参数(包括解构参数),但不能引用自身或后面的参数。
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
立即学习“Java免费学习笔记(深入)”;
-
function multiply(a, b = a * 2) { return a * b; }——multiply(3)得18 -
function createObj({ x, y }, { width = x, height = y } = {}) { ... }—— 解构参数也能参与依赖链 - 但
function bad(a = b, b = 1) { }会报ReferenceError,因为b还没初始化
真正要注意的是:默认参数的求值时机(每次调用都执行)、与 ??/|| 的语义差异、以及参数间依赖的顺序限制——这些不是语法糖,是实际影响逻辑正确性的细节。










