Archives by date

You are browsing the site archives by date.

Javascriptで関数を再帰的に呼び出す方法。

argumentsクラスのcalleeプロパティを用いる。

function foo(){
    // 処理
    arguments.callee(); // 自分自身を呼び出す
}

よく例として挙げられるのは階乗や総和の計算。
ほかにもエレガントに使えそうな場面があったら使ってみようかな。

Javascriptの変数宣言時、varの有無で挙動はどのように変わるか。

■var有り

宣言された関数内にてローカルスコープを持つ変数として振舞う。
また、DontDelete属性を持つためdelete演算子による削除が出来ない。

■var無し

関数内部での宣言であってもグローバルオブジェクトのメンバ変数として振舞う。

 

これは挙動をちゃんと理解してないとどっぷりはまるレベルの違い。
何か特別必要じゃない限りvar宣言は常にしておくでFAかな。