JavaScript

Windowの下までスクロールされたことを検出する

AutoPagerizeのようなことを実現するために、Windowの下までスクロールされたことを検出するJavaScriptを調べてみた。 意外と苦労したのでメモ。 ソース // 垂直スクロール量を取得する var scrollTop = document.body.scrollTop || document.documentElemen…

calleeとthisで参照できるオブジェクト違い

呼び出されるたびに異なる値を返す関数として、 関数プロパティに変数を保持させて実現する例があった。 uniqueID = function() { if (!arguments.callee.id) arguments.callee.id = 0; return arguments.callee.id++; }; alert(uniqueID()); // 0 alert(uni…

JavaScript第5版 P144 クロージャの例

クロージャとは、実行するコードとコードを実行するスコープを組み合わせたもの //呼び出されるたびに異なる値を返す関数 //関数のプロパティに変数を保持させて実現する場合 uniqueID = function() { if (!arguments.callee.id) arguments.callee.id = 0; r…

実行コンテキストとスコープチェーンについて整理した

JavaScript第5版「変数のスコープの概念」の説明でこんがらがってしまったので整理してみた。 グローバル変数はGlobalオブジェクトのプロパティ Globalオブジェクトはインタプリタ起動時にJavaScriptコードを実行する前に生成される ローカル変数はCallオブ…

JavaScript第5版 P123〜P140

関数 関数もオブジェクト 関数はデータとしても扱える 関数の引数は省略可能 可変長引数(argumentsプロパティで参照できる) argumentsの実態は配列のようなArgumentsオブジェクト arguments.calleeで実行中の関数を参照できる arguments.callee.lengthで関…

JavaScript第5版 P105〜P122

配列のメソッド join 配列の要素を文字列に変換し、連結する。 var a = [1, 2, 3]; var s = a.join(); // s == "1,2,3" s = join(", "); // s == "1, 2, 3" 区切り文字指定 reverse 配列の要素の順番を逆にする。新しい配列は作らない。 var a = [1, 2, 3]; …

JavaScript第5版 P91〜P104

for/in文 オブジェクトのプロパティごとにループが実行される var obj = new Object(); obj.a = 3; obj.b = "abc"; obj.c = function() { alert("call z"); }; obj.d = [1,2,3]; obj.e; for (var prop in obj) { alert(prop); //a、b、c、dの順番に表示 } va…

JavaScript第5版 P75〜P90

delete演算子 オブジェクトのプロパティを削除する。 typeof演算子 オペランドのデータ型を表す文字列を返す演算子。 switch(typeof x) { case 'number': foo(); case 'string': bar(); case 'object': gar(); default: dar(); } オブジェクトにアクセスする…

JavaScript第5版 P21〜P74

JavaScript第5版を通読中。基本だけど忘れそうなのでメモっとく 第3章 データ型と値 データ型 基本データ型は3つ 数値(すべて浮動小数点で表現される) 文字列(char型とかはない) 論理値 オブジェクト 配列はオブジェクトの一種(インデックス付のオブジ…