3

函数和值之间是什么关系?我认为函数是一种值;但是,函数既包含值(参数)也包含返回值。


我(显然)是编程新手,并且希望确保我在学习 JavaScript 时有一个坚实的概念基础。

4

2 回答 2

4

函数做事。变量保存值(数据)。

函数可以接受数据作为参数。函数也可以返回数据,但不是必须的。考虑这个函数,它只是将两个数字相加:

function addNumbers(numberA, numberB) {
    var total = numberA + numberB;
    console.log(total);
}

这是一个接受两个参数的函数。在函数的代码块中,这些参数的值被分配给变量numberAnumberB. 该函数的代码创建另一个变量 ,total并将numberA添加的值分配给 的值numberB。然后该函数调用另一个函数 ,console.log并将 的值total作为参数传入。

现在,该函数也可以返回值。让我们稍微修改一下这个函数:

function addNumbers(numberA, numberB) {
    var total = numberA + numberB;
    return total;
}

如果你现在调用这个函数,你会得到total. 如果我要运行这个:

console.log(addNumbers(5, 5));

您会10在控制台中看到。我的数字文字值作为参数传递给addNumbers. 该函数完成了它的工作并将其total变量的值返回给我。该值现在作为参数传递给console.log.

如果这还不是很清楚,那么请在继续之前在线阅读其他教程。

现在,在 JavaScript 中,函数就像其他任何东西一样。您也可以将它们分配给变量!

var newAddNumbers = addNumbers;
console.log(newAddNumbers(5, 5)); // Also returns 10 in the console

当您键入:

function someFunction () {

这与:

var someFunction = function () {

函数本身被分配给变量someFunction。在我们最初的示例中,函数本身被分配给addNumbers. 所以是的,函数是一种类型,就像数字、对象、布尔值等一样。

于 2013-04-12T04:32:40.657 回答
2

如果我有一个功能:

function add(a, b) {
    return a + b;
}

add是一个函数。所有函数都是值;例如,我可以将它们放在变量中或将它们作为参数传递。

ab是 的参数add,但该函数尚未被调用,因此它们没有值。同样,该函数已被调用,因此它没有返回值。

当我调用函数时:

add(1, 2);

该函数以该调用的初始设置为a和分别执行该调用。b12

如果我用不同的参数再次调用它:

add(3, 4);

然后这一次ab最初设置为34; 但是,这些ab不仅具有与上次不同的值;它们确实是不同的变量。每次调用函数时,参数本质上都是变量,这些变量不仅对于该函数是本地的,而且对于该函数的调用也是本地的。

于 2013-04-12T04:35:04.467 回答