スタッフブログ

  • 最新配信
  • RSS

JavaScriptを学ぶ上でPHPerが勘違いしやすい所

 : 技術全般 2008/9/3 20:17

Blogger's Avatar

haltです。 最近JavaScriptの勉強を真面目にやる事にしました。 いつまでも知ったかぶりで必要になった時にその場しのぎのコードを書くより ちゃんと理解して自分から積極的に使えるようになった方が良いですし。 そこでオライリー本を読みすすめているのですが、 文法的にPHPとそっくりのJavaScriptが配列の扱いに関しては 全然違う事がわかったので紹介します。 以下のPHPコードを見てください。
<?php
$a = array('a', 'b', 'c');
$b = $a; 
$b[0] = 'x';
var_dump($a);
これは当然a,b,cが入った配列が表示されます。 しかし、同じ事をやっているJavaScriptの以下のコードは
var a = ['a', 'b', 'c'];
var b = a;
b[0] = 'x';
alert(a);
x,b,cが表示されます。 PHPの場合、配列は「データ型」であるため、代入すると値がコピーされます。 しかしJavaScriptの場合、配列は、「配列オブジェクト」である為、 PHPのクラスのインスタンスを代入した時のように、参照扱いになります。 その為、参照先のbの変更がaに反映されるのです。 説明を読めば「ああなるほど」という感じですが、知らないでテキトーに使っていると ハマるのではないでしょうか。

トラックバック

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.