在 Javascript 中,我们如何称呼函数的参数(变量或其值)?

What do we call the argument (variable or its value) of a function in Javascript?

好的,让我们举个例子:

function student(name,age){
document.write("I am " + name + "and I am " + age + " years old." );
}
var student_name = "Divyansh";
var student_age = 17;
student(student_name,student_age);

// 现在我的问题是我们如何称呼函数 student 的参数:

(a) 是变量: student_name & student_age 分别,

(b) 还是变量包含的值:divyansh & 17 分别

PS- 我也在 codechef 上发布了同样的问题,但似乎没有人有兴趣回答我愚蠢和幼稚的问题。但是,我该怎么办?我正在尝试先通过书头学习 Javascript 自己 javascript 编程,并且由于对其中一个问题的疑问而感到震惊,请帮助。

在您的情况下,您将两个名为 student_name 和 student_age 的参数传递给分别包含值 Divyansh 和 17 的学生函数。

函数的参数是调用函数的表达式。

在这种情况下,调用函数时将两个表达式作为参数:student_name 和 student_age。 这些表达式在计算时产生一个值:变量的值。

使用两个参数调用该函数。这些参数是 变量 。并且该函数获取这些变量的 并将其分配给其局部变量,即 'name' 和 'age'.

你用过console.log()方法吗?你有没有想过它需要的最大参数数量是多少?答案是尽可能多。

举个例子。

function print(x,y){
  console.log(x);
  console.log(y);
}

好吧,这是一个简单的函数,接受 2 个参数并在控制台中打印它们。

假设我有 5 个参数传递给函数 print。 a、b、c、d、e。你将如何修改打印方法?可能是这样的。 (不要这样写程序,没有效果)

function print(a,b,c,d,e){
  console.log(a);
  console.log(b);
  console.log(c);
  console.log(d);
  console.log(e);
}

如果我传递 100 个参数,如 a1、a2、... a100,怎么样?如果我传递 1000 个参数怎么办?你不能写 1000 console.log 语句来打印它们。所以你会想到一个for循环来打印所有的参数。

等等!

如何访问 for 循环内的所有参数,除非它们是数组(使用 for 循环或 for-in 迭代)或对象(使用for-in迭代)?

现在对象 "arguments" 来了。这是由 javascript 为您声明的每个函数隐式创建的内置对象。

这家商店是做什么的?它以对象的形式存储您传递给函数的所有参数。

参数{ 0:一个, 1:乙, 2:丙, 3:d, 4: 电子 };

现在我有了类似对象的东西,它保存了传递给函数的所有参数,在 for-in 循环中访问它们会更容易。现在我的打印方法将如下所示:

function print(a,b,c,d,e,f) {
  for (var prop in arguments) {
    console.log(arguments[prop]);
  }
}

这将遍历参数对象的所有属性并打印存储在每个 属性 中的值。

每个 属性 个参数对象存储了什么?

fn参数对象-属性值存储在属性

a                  0             value of parameter a
b                  1             value of parameter b
c                  2             value of parameter c
d                  3             value of parameter d
e                  4             value of parameter e
f                  5             value of parameter f

如果我理解正确你的问题,你想知道你是否应该说

I called student with student_name and student_age.

I called student with "Divyansh" and 17.

对吗?

嗯,这取决于整个上下文,有时可以同时使用两者。
这在某种程度上是一个意见问题,但我会尽力证明我的意见。

我认为您应该通过名称引用参数(即 student_namestudent_age if

  • 它们的价值对你所说的没有意义。
    不必要的信息通常会导致混淆。
  • 它们的价值未知。
  • 他们的价值很长,你之前提到过。
    Math.pow((5*x+7*y-35*v*x*z)/(42*m/35*k+47*f+99*l), 35*22*88*k) 之类的长值往往会使书写的文本变得凌乱,并且连续多次说出来真的很烦人,因此您需要按名称引用它们。

当参数的值很重要时,你应该通过它们的值来引用参数,例如当你有一个错误,只发生在某些值被传递给你的函数时,而不是其他一些。

现在两者之间存在差距,我相信您可以同时使用两者。
对于那种情况,我会应用黄金法则
越短越好.

如果您有以下代码:

var name = "Divyansh";
console.log(name);
var name = "Marc";
console.log(name);
var name = "Jon Skeet";
console.log(name);

那么我相信以下所有陈述都是完全有效的:

I called console.log three times with name as argument.

I called console.log three times with "Divyansh", "Marc" and "Jon Skeet" as argument.

但这实际上取决于您需要或想要提供多少信息。