変数への値の代入

広告

変数の役割は値を格納したり取り出したりすることです。ここでは変数宣言した変数に値を格納する方法を確認します。

変数に値を格納することを変数に値を代入するといいます。書式は次の通りです。

変数 = 値;

「=」は代入演算子と呼ばれる演算子の一つです。「=」の右側に記述された値を左側に書かれた変数に代入します。

具体的な例で見てみます。

var num;
var name;

num = 18;
name = '鈴木';

2つの変数を宣言し、それぞれの変数に対して値を代入しています。まず変数「num」に数値の18を代入し、次に変数「name」に文字列の「鈴木」を代入しています。変数に値を代入すると、変数はあたかも代入された値のように扱うことができます。

次の例を見てください。

var name;
name = '鈴木';

alert('鈴木');
alert(name);

上記はダイアログを開いて文字列を表示しています。最初のダイアログでは直接文字列を指定していますが、次のダイアログでは変数を指定しています。この変数には文字列が代入されているため、あたかも変数に代入された値が直接書かれているようにスクリプトは動作します。このスクリプトでは2回ダイアログが開きますけど、どちらも同じ文字列が表示されることになります。

別の値を代入

変数には何度でも値を代入することができます。変数が一度に保持できる値は1つなので値が代入されている変数に別の値を代入すると、その変数は新しい値を保持することになります。

次の例を見てください。

var name;

name = '鈴木';
alert(name);

name = '山田';
alert(name);

このスクリプトでは2回ダイアログが表示されます。そしてダイアログには変数「name」の値が表示されます。どちらのダイアログも同じ変数である「nemae」という変数の値を表示するようにしていますが、1回目にダイアログが表示された時には変数には「鈴木」という文字列が代入されていますのでダイアログには「鈴木」が表示されます。そして2回目にダイアログが表示された時には変数には「山田」という文字列が代入されていますのでダイアログには「山田」が表示されます。

変数を別の変数に代入

値が代入された変数は、あたかもその値のように扱うことができます。そこで変数に対して別の変数を代入することも可能です。

次の例を見てください。

var num1, num2;

num1 = 10;
num2 = num1;

この場合、まず変数「num1」に数値の10が代入されています。次に変数「num2」に対して変数「num1」が代入されています。この時変数「num1」には数値の10が代入されていますので、結果的に変数「num2」には数値の10が代入されることになります。

この時、変数「num1」には引き続き数値の10が代入されています。他の変数に代入されたとしても値そのものが削除されるわけではありません。その変数が持っていた値が複製されて別の変数に代入されます。

ただし値が複製されて代入されるのは、変数に格納されている値が基本データ型(数値、文字列、論理型)の場合です。オブジェクトの場合には異なります。詳しくは「参照型の値を変数へ代入」を参照して下さい。
サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script4_1.js">
</script>

</body>
</html>
var name;

name = '鈴木';
document.write("<p>名前:" + name + "</p>");

name = '近藤';
document.write("<p>名前:" + name + "</p>");

name = '高橋';
document.write("<p>名前:" + name + "</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p4-1

( Written by Tatsuo Ikura )