javascript

loadイベントについて調べてみた

理解が十分でなかったので、loadイベントについてきちんと調べてみた。 DOMContentLoaded と load の違い まずはここから。 The DOMContentLoaded event is fired when the document has been completely loaded and parsed, without waiting for stylesheet…

続:Learning JavaScript Design Patterns

Abstract Factory VehicleFactory をそのままではちょっと芸がないので、Ballにしてみた。 Decorator Crepeをデコレーションしてみた。 Flyweight イミュータブルな巨大配列の作成に Flyweight を適用してみた。

Learning JavaScript Design Patterns

JavaScriptデザインパターン作者: Addy Osmani,豊福剛,サイフォン合同会社出版社/メーカー: オライリージャパン発売日: 2013/05/25メディア: 大型本この商品を含むブログ (7件) を見る 原著である Learning JavaScript Design Patterns がオンラインで公開さ…

メモリリーク

メモリリークに関して理解したかったので、いくつか記事を読んでみた。 ガーベッジ・コレクターは定期的にオブジェクト・グラフ全体を調べ、各オブジェクトを参照している他のオブジェクトの数をカウントします。あるオブジェクトのカウントがゼロの場合 (そ…

new演算子を使わない

JavaScript The Good Partsでnew演算子は使わないほうがいいよと書かれてるものの、具体的な方法明示されてないので、少々調べてみた。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new より引用。 When the code new foo…

navigator.cookieEnabled

クッキーが使えるかどうかを判定するにはnavigator.cookieEnabledの真偽をチェックすればOK。実に簡単な話なんだけど、こういうのは存在を知っている or 存在しそうだなという勘を働かせるというのが大事だなと思った。

iPhone clickイベント

li要素をタップしたら、ほげほげ(アラート出す、ハイライトする、etc)させたかったのでonclickを使ってたんだが、どうも動きがもっさり。ググってみるとこんな記事が。Remove onClick delay on webkit for iPhone Developing on the webkit for iPhone I e…

プロトタイプ

JavaScriptの肝になるプロトタイプのことを実はよく理解してなかったorz サイ本を読んで整理してみる。 すべてのオブジェクトはprototypeオブジェクトを持ち、その全プロパティを継承する コンストラクタでオブジェクトが生成される時、オブジェクトのprotot…

クロージャ

読めば分かるけど、書けない(涙)状態なので、練習。 Hello Closure! var count = function() { var i = 0; return function() { return ++i; }; }(); alert(count()); // 1 alert(count()); // 2 alert(count()); // 3 ちなみにperlだとこんな感じ。 my $c…

プロトタイプ

プロトタイプはJavaScriptにおける中核的な機能で、プロパティの継承の役割を担うってことはわかってるんだけど、細かいこと分かんない>_ いろいろ試して、少しずつ理解を積み上げていく! Circle = function(){}; Circle.PI = 3.14; var c = new Circle(); …

関数呼び出しとthis

「JavaScript: The Good Parts」を読んでいる。関数の呼び出しパターンには、メソッド呼び出し、関数呼び出し、コンストラクタ呼び出し、apply呼び出しの4パターンがあり、thisがどのように扱われるかが違う。 メソッド呼び出し thisには呼び出しオブジェク…

関数はオブジェクト

javascriptにおける関数はオブジェクトだ! と言われてもいまいちピンとこないのでちゃんと調べて理解してみる。 関数はオブジェクト? function static_function() { } for (var prop in window) { if (prop == 'static_function') alert("func is window's…

Long polling

リアルタイムWebやEvented I/Oやらがホットらしいが、そのあたりの技術トレンドに追いていかれてる感があるので、調べてみた。 まずはLong polling。http://en.wikipedia.org/wiki/Push_technology Long polling is a variation of the traditional polling …

基本に立ち返る

最近javascriptをちょこちょこ書いているが、基本構文すらまともに覚えていない状態で書くのはあまりに効率が悪いことに気づいた(爆)。どうせやるなら「動けばよし」ではなく「完璧に理解」を目指したいじゃまいか。ということで、基本に立ち返って調べた…

Framework Speed Comparison

ベンチマーク http://blog.creonfx.com/javascript/mootools-vs-jquery-vs-prototype-vs-yui-vs-dojo-comparison-revised に掲載されているベンチマークテスト内容をサマる。 テスト対象 tests the selectors which are essential part of any Javascript fr…

jQuery覚え書き

ちょっとずつjQueryを使い始めている。 本当にHelloWorld的なことレベルだが覚え書き リファレンス http://semooh.jp/jquery/ はじめてのjQuery ドキュメントのロードが完了したら、アラートボックスに「Hello World!」を表示。 $(document).ready(function(…

CPAN Search

自作。ブラウザにつけると便利。 javascript:d=document;w=window;t=''; if(d.selection){t=d.selection.createRange().text;} else if(d.getSelection){t=d.getSelection();} else if(w.getSelection){t=w.getSelection();}; if(t==""){t=w.prompt("Perl Mo…

配列と連想配列

以前、javascriptの連想配列の実体はオブジェクトだよーんていう話をどこかで見た(or 聞いた)気がして色々試してみようと思ったら、すでにamachang氏がやっていた。 http://d.hatena.ne.jp/amachang/20070202/1170386546さすが & ありがとぅ!!(面識は…

正規表現でアンカーテキストを取り出す

TextAreaに入力されているアンカーテキスト形式に誤りがないかチェックするため、まずはすべてのアンカーテキストを配列に取り出すことに。 これが意外と難しかった。 function extractAnchors(text) { text = text.replace(/&lt;/g, "<"); text = text.repl…

HTML内の任意の文字列をマークアップする

documentオブジェクトを引数に取る無名関数を定義 関数内でinnerHTMLを取得し、正規表現を利用して置換処理 関数を実行 でOK! 例えば、googleと書いてある文字を黄色でマークアップする。 javascript:(function(d){ d.body.innerHTML=d.body.innerHTML.repla…

英辞郎のブックマークレットをつくってみた

たまに英単語を調べる時に不便なので。 和英・英和どちらでも検索できます。 使い方*1 ツールバーで右クリックし、プロパティをクリック URLに以下のコードをコピペ 調べたい単語を選択した状態で、ブックマークレットをクリックすればOK。*2 コード javascr…