[JavaScript][PHP][Perl] 配列を初期化するときの、最後のカンマの扱いについて
プログラムを書いていて、下記のように配列を初期化することがよくあります。
配列 = [
要素1,
要素2,
];
このときいつもモヤモヤするのが、
最後の要素の後にカンマ(,)付けても大丈夫なんだっけ?
ということ。
つまり、この配列は要素が2個としてちゃんと解釈されるのかな?という不安です。
よい機会なので、JavaScript、PHP、Perlで挙動の違いをまとめてみました。
Perlの場合
@ary = ("foo", "bar",);
$count = @ary;
print $count;
→ 結果 2
PHPの場合
$ary = array( "foo", "bar", );
echo count($ary);
→ 結果 2
JavaScript (Firefox) の場合
var ary = ["foo","bar",];
alert(ary.length);
→ 結果 : 2
JavaScript (IE6) の場合
var ary = ["foo","bar",];
alert(ary.length);
→ 結果 : 3
結論。
IEのJavaScriptI(=JScript)は、最後のカンマのあとにもう一つ空の要素を生成する。
というわけで本日のまとめ。
[FOO,BAR,] を
3個と数える
JScript
字あまり ><