[Javascript] の基本を勉強したメモ

過去に少しだけ覚えたんだけどマルッと抜けております。 ということでテキトーに復習したもののメモを書き残す。

参考サイト

変数

var hen = "";
var hen = "変";
suu = "数";
document.write(hen, suu + "です");

/*
var var;
var 001var;
*/

結果

変数です

コメントアウトした部分は*missing variable name*エラーとなる。予約語や先頭の数字は変数名として使えない。 変数の宣言時に var を省略することもできるけど、関数においてはスコープと関係してくるので注意が必要。

文字列の結合

速度的な問題で文字列の結合に + 演算子は使わないほうがいいらしい。以下の参考リンクを読むべし

結果

みんな一緒だよ

javascript の += は php だと .= 演算子を使うから混同しないように。というか php書いてて間違えた。 array.join() の引数を空にするとカンマで区切られるので if条件を通らなくなる。 v3 += one; にしてしまうと v3 = undefined + one になってしまうので if条件を通らなくなる

文字列の操作

var str = "0123456789";
str = str
  .substring(1)
  .substring(1,8)
  .substr(1,5);

var arr = new Array();
arr.push( str.length );
arr.push( str.charAt(0) );
arr.push( str.indexOf("7") );
arr.push( str.indexOf("7", 7) );

document.write( arr.join() );

結果

5,3,4,-1

substr は php と同じだね。。 indexOf は php の strpos とほぼ同じ、文字列が見つからなければ -1 を返す点が異なる

制御構造

phpとほとんど変わらない。break, continue におけるラベルの使用は php には無いよね?

var arr = Array();

label_001 :
while( true )
{
  arr.push("while");

  do
  {
    arr.push("do");

    label_002 :
    for(;;)
    {
      arr.push("for");
      break label_002 ;
    }
  } while ( arr.length < 5 );
  break label_001
}
document.open();
document.write( arr.join(" ") );
document.close();

結果

while do for do for

for in 文 は php の foreach っぽいけどちょっと違うか。。list() + each() に近い感じ?。for in 文で 連想配列のキーを取り出すことができる。

配列

配列は配列プロトタイプを継承したオブジェクト。php では出てこないのでプロトタイプがなにかさっぱり分からないので細かい理解は後回し。

var hairetsu = new Array(777);
result = [];
result.push(hairetsu.length);

arr = [0,1];
arr.push("2");
arr[2] = "3";
arr[4] = "4";

for(i = 0; i < arr.length; i++)
{
  result.push(arr[i]);
}
document.write( result.join() );

結果

777,0,1,3,,4
var a = ["a0","a1","a2"];
var b = ["b0","b1","b2"];
var c = ["c0","c1","c2"];

a.pop();
b.shift();
var d = a.concat(b);
d.unshift(c);
d.push(c);

document.write(
  d.join(" | ")
);

結果

c0,c1,c2 | a0 | a1 | b1 | b2 | c0,c1,c2

連想配列

連想配列はオブジェクト。配列で使用した [四角括弧] は連想配列では使えない。

var obj = { 連想 : "配列" };
obj["Java"] = "Script";
obj.foo = "bar";

arr = [];
for(var key in obj)
{
  arr.push(key);
  arr.push(obj[key]);
}
document.open();
document.write( arr.join() );
document.close();

結果

連想,配列,Java,Script,foo,bar

JavaScript の配列と連想配列の違い | IT戦記はとても理解の役にたったので読むべし。とかいってまだちゃんと理解できて無いけど orz

関数

var test = {};
var arr = [];

test["func_a"] = function()
{
  this.local = foobar;
  return this;
}
test.func_b = function()
{
  var foobar = "localscope";
  arr.push(this.local);
  arr.push(foobar);
  return this;
}
test.func_c = function()
{
  arr.push(foobar);
  arr.push("END");
  var foobar = foobar;
  document.write( arr.join() );
}

var foobar = "foobar";
test.func_a(100).func_b().func_c();

結果

foobar,localscope,,END
Share
関連記事