📜  es5 参数 (1)

📅  最后修改于: 2023-12-03 15:00:37.099000             🧑  作者: Mango

ES5参数

ES5参数是指在ES5规范下使用的函数和方法参数。它们具有以下特点:

  • 位置参数:在函数参数列表中,位置决定了参数的含义。从左到右依次赋值,使用过程中也按照位置调用。
  • 默认值:ES5允许为函数参数设置默认值,当实参未提供时可以使用默认值。
  • 可选参数:在JavaScript中没有函数签名(即参数类型和数量的声明),因此函数参数数量是可选的,可以传入任意数量的参数。
  • arguments对象:ES5中的函数可以通过arguments对象获取函数调用时传递进来的参数列表,即使在函数定义时并未声明这些参数。
位置参数

位置参数是指在函数参数列表中,参数的位置决定了其含义。例如:

function add(x, y) {
  return x + y;
}

add(1, 2); // 输出 3

在上面的例子中,参数xy的位置决定了它们的含义,调用时也需要按照位置传入参数。

默认值

ES5允许为函数参数设置默认值。当实参未提供时,可以使用默认值。例如:

function greet(name, message) {
  name = name || 'Tom';
  message = message || 'Hi';
  console.log(`${message}, ${name}!`);
}

greet(); // 输出 Hi, Tom!

在上面的例子中,当调用greet()函数时没有传入参数,namemessage将使用默认值。

可选参数

在JavaScript中没有函数签名,参数数量是可选的。因此,函数可以传入任意数量的参数。例如:

function sum() {
  let total = 0;
  for (let i = 0; i < arguments.length; i++) {
    total += arguments[i];
  }
  return total;
}

sum(1, 2, 3); // 输出 6
sum(4, 5, 6, 7); // 输出 22

在上面的例子中,sum函数可以传入任意数量的参数。

arguments对象

ES5中的函数可以通过arguments对象获取函数调用时传递进来的参数列表,即使在函数定义时并未声明这些参数。例如:

function greet() {
  let message = arguments[0] || 'Hi';
  let name = arguments[1] || 'Tom';
  console.log(`${message}, ${name}!`);
}

greet(); // 输出 Hi, Tom!
greet('Hello'); // 输出 Hello, Tom!
greet('Hey', 'Jerry'); // 输出 Hey, Jerry!

在上面的例子中,greet函数可以通过arguments对象获取函数调用时传递进来的参数,从而实现参数数量的可选性。