函式会将参数传入函式里面,让它们成为函式里的变数,让程序码去做运算。参数只能在函式里刷存在感(期间限定?),一旦函式执行完毕,就会被消失。(Mission Impossible音乐响起......)
一般的函式长成这个样子:
const multiply = function funA(numA, numB){
return numA + numB;
}
//呼叫multiply()函式
multiply(1,2) //2
plus(1,2),小括号中的1跟2就是参数,传到multiply这个函式,numA就是1,numB就是2,传出来的值就是2。
JavaScript呼叫函式的时候,不会对函式的数量做检查,超过函式小括号里面函式数量的参数,没有配对到的就会被以undefined定义。如果呼叫函式的时候,参数数量少於函式小括号里面定义的数量,也会以undefined表示。
如果担心呼叫函式的时候,传入函式的参数少於函式定义的参数数量,没有配对到的参数会变成undefined,也可以帮参数指定预设值。
const plus = function funA(numA = 0, numB = 0){
return numA + numB;
}
//呼叫plus()函式
plus(5) //2
当函式被呼叫的时候,会生成一个arguments物件,里面的放的就是呼叫函式的时候,小括号里面放的「参数」。
argruments物件并非阵列,它是带有「索引」特性的物件,拥有length属性,而且只能在函式里面使用。这意味着:就算我们呼叫函式时带入的变数数量超过原本函式设定的数量,也可以利用回圈把超过预设数量的变数捞出来运算,还可以透过使用arguments物件让函式能够呼叫数量不定的引数
const plus = function (numA,numB){
var num = 0;
console.log(arguments.length);
for( var i = 0; arguments.length > i; i++ ){
num += arguments[i];
}
return num;
}
//呼叫plus()函式
plus(1,2,3,4,5,6)
//console.log(arguments.length)会跑出6
//然後参数相加的部分会跑出21
前面提到的箭头函式,并没有arguments物件可以使用,但是ES6提供了「其余参数」(rest parameter)让箭头函式来使用。
只要在函式的小括号中以...三个点开头,後面接上参数名称,就变成了「其余参数」(rest parameter),所有参数都存在里面。而且「其余参数」是一个阵列,所有阵列的方法它都可以使用。
const plus = (...args) => {
var num = 0;
console.log(args.length);
for( var i = 0; args.length > i; i++ ){
num += args[i];
}
return num;
}
//呼叫plus()函式
plus(1,2,3,4,5,6)
//console.log(args.length)会跑出6
//然後参数相加的部分会跑出21
arguments物件与 ...args其余参数都让函式在取用参数的时候,不用拘泥於原本定义的参数数量,让参数的使用有更大的弹性与扩充性。
Comment is a very important part in programing Com...
这一篇来个中场回亿 D1~D2: 完成 Xcode 基本架设 D3~D6: 完成公司基本资料的拉取 ...
if isinstance(event, PostbackEvent): # 如果有normal讯息...
为了可以很顺利的拍完北泽的用餐体验,练习了20几次後,才轮到它。(这样就知道我有多在乎北泽了吧~) ...
今天要来说明 ROS 怎麽安装,今天会分成 Ubuntu18.04 跟 Windwos 两个版本来讲...