【コードによるデフォルト引数】
/**
* RGB値 取得
* @param {number} [r=255] 赤色
* @param {number} [g=255] 緑色
* @param {number} [b=255] 青色
* @return {number} RGB値
*/
function rgbA(r, g, b) {
r = (r === undefined) ? 255 : r;
g = (g === undefined) ? 255 : g;
b = (b === undefined) ? 255 : b;
return r * 0x10000 + g * 0x100 + b;
}
console.log(rgbA().toString(16)); // 出力:ffffff
console.log(rgbA(64).toString(16)); // 出力:40ffff
console.log(rgbA(64, 128).toString(16)); // 出力:4080ff
console.log(rgbA(64, 128, 192).toString(16)); // 出力:4080c0
【デフォルト引数 】
/**
* RGB値 取得
* @param {number=} r 赤色
* @param {number=} g 緑色
* @param {number=} b 青色
* @return {number} RGB値
*/
function rgbB(r = 255, g = 255, b = 255) {
return r * 0x10000 + g * 0x100 + b;
}
console.log(rgbB().toString(16)); // 出力:ffffff
console.log(rgbB(64).toString(16)); // 出力:40ffff
console.log(rgbB(64, 128).toString(16)); // 出力:4080ff
console.log(rgbB(64, 128, 192).toString(16)); // 出力:4080c0
【引数をデフォルト引数に指定】
/**
* 合計値 取得
* @param {number} p1 パラメータ1
* @param {number} [p2=p1+1] パラメータ2
* @param {number} [p3=p2+1] パラメータ3
* @return {number} 合計値
*/
function sumA(p1, p2 = p1 + 1, p3 = p2 + 1) {
console.log("sumA:", p1, p2, p3);
return p1 + p2 + p3;
}
console.log(sumA(1));
// 出力:sumA: 1 2 3
// 出力:6
console.log(sumA(2));
// 出力:sumA: 2 3 4
// 出力:9
console.log(sumA(1, 2));
// 出力:sumA: 1 2 3
// 出力:6
console.log(sumA(1, 3));
// 出力:sumA: 1 3 4
// 出力:8
console.log(sumA(1, 2, 3));
// 出力:sumA: 1 2 3
// 出力:6
console.log(sumA(2, 4, 6));
// 出力:sumA: 2 4 6
// 出力:12
【可変長引数 (arguments)】
/**
* 合計値 取得
* @param {...number} p1
* @return {number} 合計値
*/
function sumB(p1) {
var answer = 0;
for (var i = 0; i < arguments.length; i++) {
answer += arguments[i];
}
return answer;
}
console.log(sumB(1, 2, 3)); // 出力:6
console.log(sumB(1, 2, 3, 4, 5)); // 出力:15
【可変長引数 】
/**
* 合計値 取得
* @param {number} p1
* @param {...number} pN
* @return {number} 合計値
*/
function sumC(p1, ...pN) {
console.log("sumC:arguments.length = " + arguments.length);
console.log("sumC:pN.length = " + pN.length);
var answer = p1;
for (var i = 0; i < pN.length; i++) {
answer += pN[i];
}
return answer;
}
console.log(sumC(1, 2, 3));
// 出力:sumC:arguments.length = 3
// 出力:sumC:pN.length = 2
// 出力:6
console.log(sumC(1, 2, 3, 4, 5));
// 出力:sumC:arguments.length = 5
// 出力:sumC:pN.length = 4
// 出力:15