このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
js:function:param [2021/04/12 14:40] tanaka |
js:function:param [2021/04/19 14:24] (現在) tanaka |
||
|---|---|---|---|
| 行 7: | 行 7: | ||
| JavaScriptでは引数の数をチェックしない。 | JavaScriptでは引数の数をチェックしない。 | ||
| - | === 例 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| function func(arg) { | function func(arg) { | ||
| console.log(arg); | console.log(arg); | ||
| 行 16: | 行 15: | ||
| func(1); | func(1); | ||
| func(1, 2); // 出力:1 | func(1, 2); // 出力:1 | ||
| - | </code> | + | </sxh> |
| 引数の有無は関数内でundefinedによって判断する。 | 引数の有無は関数内でundefinedによって判断する。 | ||
| - | === 例 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| function getArea(height, | function getArea(height, | ||
| if (height === undefined) height = 0; | if (height === undefined) height = 0; | ||
| 行 31: | 行 29: | ||
| console.log(getArea(10)); | console.log(getArea(10)); | ||
| console.log(getArea(10, | console.log(getArea(10, | ||
| - | </code> | + | </sxh> |
| \\ | \\ | ||
| 行 38: | 行 36: | ||
| argumentsオブジェクトは関数呼び出し時に自動的に生成され、引数の数とそれぞれの値を取得できる。 | argumentsオブジェクトは関数呼び出し時に自動的に生成され、引数の数とそれぞれの値を取得できる。 | ||
| - | === 例1 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| function getArea(height, | function getArea(height, | ||
| return arguments.length < 2 ? 0 : arguments[0] * arguments[1]; | return arguments.length < 2 ? 0 : arguments[0] * arguments[1]; | ||
| 行 46: | 行 43: | ||
| console.log(getArea(10)); | console.log(getArea(10)); | ||
| console.log(getArea(10, | console.log(getArea(10, | ||
| - | </code> | + | </sxh> |
| - | === 例2 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| function max() { | function max() { | ||
| if(arguments.length > 0) { | if(arguments.length > 0) { | ||
| 行 61: | 行 57: | ||
| console.log(max(10)); | console.log(max(10)); | ||
| console.log(max(10, | console.log(max(10, | ||
| - | </code> | + | </sxh> |
| \\ | \\ | ||
| 行 71: | 行 67: | ||
| </ | </ | ||
| - | === 例 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| function getArea(height=0, | function getArea(height=0, | ||
| return height * width; | return height * width; | ||
| 行 79: | 行 74: | ||
| console.log(getArea(10)); | console.log(getArea(10)); | ||
| console.log(getArea(10, | console.log(getArea(10, | ||
| - | </code> | + | </sxh> |
| \\ | \\ | ||
| 行 89: | 行 84: | ||
| </ | </ | ||
| - | === 例 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| function mySum(...values) { | function mySum(...values) { | ||
| let sum = 0; | let sum = 0; | ||
| 行 99: | 行 93: | ||
| console.log(mySum(1)); | console.log(mySum(1)); | ||
| console.log(mySum(1, | console.log(mySum(1, | ||
| - | </code> | + | </sxh> |
| - | ※ argumentsと異なり可変長引数はArrayオブジェクトである | + | ※ argumentsと異なり可変長引数はArrayオブジェクトである。 |
| ==== 実引数(呼び出し側)での使い方 ==== | ==== 実引数(呼び出し側)での使い方 ==== | ||
| 行 109: | 行 103: | ||
| </ | </ | ||
| - | === 例 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| function mySum(...values) { | function mySum(...values) { | ||
| let sum = 0; | let sum = 0; | ||
| 行 120: | 行 113: | ||
| console.log(mySum(...[1, | console.log(mySum(...[1, | ||
| console.log(mySum([1, | console.log(mySum([1, | ||
| - | </code> | + | </sxh> |
| \\ | \\ | ||
| 行 126: | 行 119: | ||
| < | < | ||
| - | === 分割代入の応用 | + | <sxh javascript; |
| - | + | ||
| - | <code javascript> | + | |
| function getArea({height=0, | function getArea({height=0, | ||
| return height * width; | return height * width; | ||
| } | } | ||
| console.log(getArea({height: | console.log(getArea({height: | ||
| - | </code> | + | </sxh> |