javascript 複数の変数に同じ値を代入する

javascript 複数の変数に同じ値を代入する

javascriptで、複数の変数に同じ値を代入するサンプルコードを記述してます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 104.0.5112.81

一括代入

「javascript」の場合、以下のコードで、複数の変数に同じ値を代入することが可能です。

let x = y = z = 10;

console.log( x, y, z )
// 10 10 10

定義後でも利用可能です。

let x , y , z; 

x = y = z = 10;

console.log( x, y, z )
// 10 10 10

関数などにも使用可能です。

let x = y = z = function(){
    console.log('foo')
}

x(); // foo

y(); // foo

z(); // foo

変数のスコープ

以下のように「let」で定義すると、ブロックスコープになるのは最初の「x」だけとなります。

function foo() {
    let x = y = z = 10;
    console.log(x);
    console.log(y);
    console.log(z);
};

foo();

console.log(y);
console.log(z);

console.log(x); // Uncaught ReferenceError: x is not defined

「const」も、適応されるのは最初の変数のみです。

const x = y = z = 10;

z = 11;

y = 11;

x = 11; // Uncaught TypeError: Assignment to constant variable.

use strict

ただし「use strict」を指定した場合は、エラーが発生します。

'use strict';

const x = y = z = 10; // Uncaught ReferenceError: z is not defined

console.log( x, y, z )

配列を使用

以下のように、配列を使用する方法もあります。

'use strict';

let [ x, y, z ] = [ 10, 10, 10 ];

console.log( x, y, z );
// 10 10 10

function foo() {
    let [ a, b, c ] = [ 10, 10, 10 ];
    console.log(a); // 10
    console.log(b); // 10
    console.log(c); // 10
};

foo();

console.log(a); // 10
console.log(b); // 10
console.log(c); // 10

const [ l, m, n ] = [ 10, 10, 10 ];

l = 11; // Uncaught TypeError: Assignment to constant variable.

m = 11; // Uncaught TypeError: Assignment to constant variable.

n = 11; // Uncaught TypeError: Assignment to constant variable.