我是JavaScript新手。我正在学习它,但我不理解“带参数的功能”。为什么功能需要“参数”&我们怎么知道这个函数需要一个“参数”。你能给我一个链接,我可以从中学习基本的所有JavaScript。我想要一个链接,其中提供了所有带有详细信息的小型JavaScript程序。
答案 0 :(得分:2)
如果函数的输出基于某些输入值,则函数需要参数。例如,如果您要编写一个将两个数字相加的函数:
function adder(a, b) {
return a + b;
}
我知道这个函数有两个名为a
和b
的参数,因为我可以在函数名称后的定义中看到它:adder(a, b)
。我需要将两个数字“传递”给这个函数,以便产生良好的输出,如下所示:
adder(2, 3); // returns 5
如果我没有传递两个数字,返回的结果将是NaN
,因为函数的参数将是undefined
:
adder(); // a = undefined, b = undefined, returns NaN
adder(7); // a = 7, b = undefined, returns NaN
有关学习Javascript的更多信息,有一个地方是MDN guide。
答案 1 :(得分:1)
功能不是需要参数。所有功能都由2个必需部分组成:
参数是界面的一部分,您可以将参数传递给您的函数,以帮助它实现整个程序的目标。
考虑以下(理论)示例:
假设我想制作一个电视操作节目。我想定义一种切换频道的方法。
function switchChannel() { /* do some stuff */ }
然而,你会问自己的第一件事是什么?用户想要更改的渠道是什么? 这是界面问题,所以为了在我们的函数中包含它,我们会做这样的事情:
function switchChannel(channelNum) { /* do some stuff */ }
当我调用该函数时,我很可能会这样做:
switchChannel(24);
该24 值将传递到channelNum
函数内的switchChannel()
参数。
完整的示例代码:
function switchChannel(channelNum) { alert(channelNum); }
switchChannel(24);
结果将是 24
的警告这就是它的要点,希望它对你有所帮助:)。
答案 2 :(得分:0)
我建议您查看此页http://www.w3schools.com/js/js_functions.asp。
我会在路上添加几句话。
例如,我们想要更改页面的背景颜色
为此我将创建这样的函数
function changeBG(whichColor){
document.bgColor = whichColor;
}
所以,我可以点击按钮(红色按钮)调用该功能 - onclick="changeBG('red');"
相同,我可以使用diff参数调用该方法(例如onclick="changeBG('green');"
我们可以在需要时重用相同的代码。
答案 3 :(得分:0)
这不是javascript特有的。
所有编程语言都有需要参数的功能。
实际上,所有功能都有参数。函数就像你在数学课中学到的那样:给它一个输入值,它给你一个输出值。
具有“无参数”的函数实际上有0个参数。就其性质而言,它只能返回一个值(除非它正在访问外部变量,这是非常差的形式)。
例如:
function sum0() { // <-- "no" parameters/arguments
return 0;
}
function sum1(x0) { // <-- 1 parameters/arguments
return x0;
}
function sum2(x0, x1) { // <-- 2 parameters/arguments
return x0+x1;
}
function sum3(x0, x1, x2) { // <-- 3 parameters/arguments
return x0+x1+x2
}
(当然你永远不会写这些函数;它们是可怕的和重复的。我们编写的全部原因都是为了避免重复。要实际实现sum函数,你要么传入一个数组作为一个参数,或做return arguments.reduce(sum2)
)
没有参数的函数有时称为“thunk”,因为它不需要处理新信息。它“已经深思熟虑”。例如:
function firstNPrimes(n) { // 1 parameter, not "thought out"
// sieve of Eratosthanes goes here
}
假设我们现在想要一个函数firstFivePrimes
。我们有很多方法可以做到:
function firstFivePrimes() { // no parameters, already "thought out"
return firstNPrimes(5);
}
然而,它已经“深思熟虑”,所以我们可以预先计算它,或者在后台计算它:
function firstFivePrimes() { // no parameters, already "thought out"
return [2,3,5,7,11];
}
假设您没有访问全局变量(格式不佳),这两个实现是相同的。
这是一个总是返回相同值的“thunk”:一个函数!
function makeCounter() {
var i = 0;
return function() {
console.log(i++);
}
}
示例:
> counter = makeCounter()
> counter()
0
> counter()
1
> counter()
2
> anotherCounter = makeCounter()
> anotherCounter()
0
> anotherCounter()
1
> counter()
3
> anotherCounter()
2