Categories: JavaScript

【JavaScript入門】値渡しと参照渡し

値渡し

変数には値そのものを渡すため、元の変数xの値を書き換えても変数yには影響しません。

js

let  x = 10;
let  y = x;
x = 30;
console.log(y);

実行結果

10

メソッドの場合(例1

以下はメソッドの場合の例です。
メソッドの中で変数xの値を書き換えても、呼び出し元では影響を受けません。

js

let x = 100;

call(x);

console.log('呼び出し元:' + x);

function call(x){

    x = x * x;
    console.log('呼び出し先:' + x);
}

実行結果

呼び出し先:10000
呼び出し元:100

メソッドの場合(例2

js

let val = 10;

function kakezan(val){
    return val * val;
}

console.log(kakezan(val));//100
console.log(val);//10

参照渡し

配列やオブジェクトなど参照型の場合は、元の変数xの値を書き換えると変数yにも影響します。

js

let x = [1,2,3];
let y = x;
x[2] = 30;
console.log(y);

実行結果

[ 1, 2, 30 ]

メソッドの場合(例1

以下はメソッドの場合の例です。
メソッドの中で変数x[1]の値を変更すると、呼び出し元でもその変更の影響を受けます。

js

let x = [1,2,3];

call(x);

console.log('呼び出し元:' + x[1]);

function call(x){

    x[1] = x[1] * x[1];
    console.log('呼び出し先:' + x[1]);
}

実行結果

呼び出し先:4
呼び出し元:4

メソッドの場合(例2

js

let array = [1,2,3,4,5];

function addArray(array){
    array.push(6);
    return array;
}

console.log(addArray(array));//[ 1, 2, 3, 4, 5, 6 ]
console.log(array);//[ 1, 2, 3, 4, 5, 6 ]

以上で記事の解説はお終い!

HTML、CSS、JavaScriptをもっと勉強したい方にはUdemyがオススメ!同僚に差をつけよう!

issiki_wp