LoginSignup
0
1

More than 3 years have passed since last update.

【JavaScript】値渡しと参照渡しについて

Last updated at Posted at 2020-11-03

■はじめに

プログラミングの基本に「値渡し」がある。
値渡しが理解出来ることで関数の書き方や引数の設定などを理解することが出来る。

基本だがプログラミングスクールでは値渡しや参照渡しのレクチャーがない。
プログラマーになって、他人にわかりやすいコード、効率的なコードを書きたいと思えるようになった。

昔はパクリでもなんでもいいからシステムの構築ができれば良いという「その場しのぎ」の考えだった。
まずは言葉だけでもいいから知ってほしい。
知ることでスキルアップのきっかけとなるから。

■値渡しについて
 値渡し:変数の値をそのまま渡すこと
 変数の値がNumber型、String型、Boolean型の場合、値渡しになる。
 
 参照渡し:変数で指定した場所を渡すこと
      ※値そのものを渡していないことを認識すること。この考え方がとても重要!!
 ⇢上記以外の型(オブジェクト型や配列)が参照渡しとなる。

■例1

// 値型変数の値渡しの例

let a = 1;
function set(x){
    x += 2;
    return x;
}
set(a);
console.log(a);

// この場合、変数aの値は3で出力される

■例2:

// 参照型変数の値渡しの例

let b = [1];
function set(y){
    y[0] += 2;
}
set(b);
console.log(b[0]);

// この場合も、変数aの値は3で出力される

■例3

// 値型変数の値渡しの例

let a = 1;
function set(x){
    x += 2;
}

// returnがないため計算されても結果が関数の外に反映されない

set(a);
console.log(a);

// この場合、変数aの値は1で出力される

■例4:

// 参照型変数値渡しの例

let b = [1];
function set(y){
    y[0] += 2;
    return x;
// 参照渡しの場合returnで返す必要ない。
}
set(b);
console.log(b[0]);

値の受け渡し、考え方を覚えることで関数の構築が楽になる。

0
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1