このページの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> |