You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript是否支持多个字符串作为函数参数?示例写法是否合规?

问题解答

首先明确核心结论:

  • 你给出的function name(Haydon Lyson){//code}写法完全无法被JavaScript正常识别执行,运行时会直接抛出语法错误。
    错误原因很直接:JavaScript函数的形参列表中,多个参数之间必须用英文逗号做分隔,你写的Haydon Lyson中间用空格分隔,不符合JS语法规则,解释器在代码解析阶段就会判定非法,根本不会进入函数执行逻辑。
  • JavaScript原生支持接收多个字符串作为函数参数,正确写法根据参数数量是否固定分为两类:

固定数量的多字符串参数

定义函数时,把每个形参用英文逗号分隔开即可;调用传值时,字符串需要用引号(单引号、双引号、反引号均可)包裹,多个入参同样用英文逗号分隔:

// 正确的函数定义:两个形参分别接收姓、名字符串
function printFullName(firstName, lastName) {
  console.log(`Full name: ${firstName} ${lastName}`);
}
// 传入多个字符串参数调用
printFullName("Haydon", "Lyson"); 
// 执行输出:Full name: Haydon Lyson

注意:如果传参时不给字符串加引号,JS会把Haydon、Lyson识别为变量名,若当前作用域没有定义对应变量,会抛出引用错误。

不确定参数数量的场景

如果提前没法确定要传入多少个字符串,可以用两种方式接收所有入参:

  • ES6及以上版本推荐用剩余参数语法,所有传入的参数会被自动收集为一个数组:
function mergeStrings(...strArray) {
  // strArray 是所有入参组成的数组,可直接调用数组方法处理
  return strArray.join("-");
}
mergeStrings("a", "b", "c", "d"); // 返回 "a-b-c-d"
  • 如果需要兼容更早的ES版本,可以用函数内置的arguments类数组对象获取所有传入的参数:
function oldMergeStrings() {
  // 把类数组结构的arguments转为真正的数组
  const strList = Array.prototype.slice.call(arguments);
  return strList.join("-");
}
oldMergeStrings("a", "b", "c"); // 返回 "a-b-c"

内容的提问来源于stack exchange,提问作者Ivanovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:42:15