2011-02-23から1日間の記事一覧

letの使用について

{}ブロックでのみ有効な変数を宣言するためにletを使用すれば良いと思い、下記のスクリプトを書いた。 期待する動作は、1,2,1と順番にアラートダイアログで表示する動作だ。 しかし、動作しなかった。 動作確認を行ったブラウザはfirefox3.6.13とIE8だ…

{}内のスコープでのみ有効な変数の宣言方法

JavaScriptでは、Javaと異なり、括弧({})によるスコープ定義というものはない。 スコープを定義できるのは関数なのだ。例えば、下記のコードでは、順番に1,2,2と表示される。 var x=1; alert(x); { //ここで宣言した変数は{}内でのみ有効とはならない var …

非同期イベントとコールバック関数setTimeout()

実行すると、次のような順番でユーザにalertダイアログが表示されるコードを示す。 beforeと表示する afterと表示する setTimeoutが呼ばれてから5秒後に、funcを実行する(5 seconds passedと表示する) <script type="text/javascript"> var func = function(){ alert("5 seconds passed");</script>…

jQueryのeach関数

eachとかfilterとか、勉強しておこう。

配列のコピー

間違いを犯していたので、メモ。 下記のように、関数の中で新しい配列outputDataを作成して、inputData(これも配列)にコピーしたつもりだったが、参照しか渡せていない。 outputDataは関数内でのみ有効な変数なので、関数の外に戻ったら、未定義になっている…

即時関数

即時関数とは、定義したらすぐに実行される関数である。*1用途を示す。 コードを全てローカルスコープに閉じ込め、グローバルスコープに変数が漏れないようにするため 定義方法(構文)は2つある。JSLintは前者を推奨しているらしい。 なお、即時関数の戻り…

オブジェクトのプロパティの追加

var obj = {one:1}; alert(obj.one); obj.two = 2; alert(obj.two); obj["three"] = 3; alert(obj.three); for(var i in obj){ alert(i + ";" + obj[i]); }

カプセル化。関数外から関数内の変数にアクセスする。

JavaScriptでカプセル化。 var createBeans = function(arg){ var obj = arg; return { get:function(){return obj;}, set:function(arg){ obj = arg} }; }; var javascriptBeans = createBeans(0); //クロージャを利用して関数内の変数objに1を設定する jav…