javascript

Webページの要素間をスムーズにスクロールするやつ

仕事でjavascriptアニメーションしたくて、かといって、jQuery入れるにはいろいろ問題が、、、ということもあって、 自前で、easing関数を使ってスムースにスクロールするやつ書いた。sin()とかcos()とか、ぜんぜんわからなくてちょっと悲しかった。 以下の…

フィボナッってみた

なにも新しい事はやってない。再帰を使わなければ簡単に書ける。 function fib(n) { if (n < 1) return 1; var [a, b] = [0, 1]; for (var i = 1; i < n; i++) { [a, b] = [b, a + b]; } return b; } 再帰を使ったものだと、↓とか参考になる。最も簡単に fib…

eval() is "evil"? chrome特権コード内でのevalすることの危険性について

Growl/GNTPアドオンの件を通して、JSONをパースするにあたって eval() がいかに危険であるか認識したので、エントリにまとめてみる。 chrome特権を持つコードでのwindow.eval()の危険性について JSON文字列からオブジェクトを得る方法として、多くの例として…

javascriptでの"!!"の意味がなんとなくわかった!!

よく、人のソースを読むと var hoge = !!fuga; というイディオムがあって"!"を2回続けるのってどういう意味だろう?って思ってた。 否定の否定は肯定だから式自体に意味が無いよなぁとか、各種リファレンスとかを当たってみたけどそんな式とか無くて、とり…

リフロウとリペイント:CSSがjavascriptのパフォーマンスの足をひっぱっている?(を読んだメモ)

Stubbornella ? Blog Archive ? Reflows & Repaints: CSS Performance making your JavaScript slow? 上記エントリをテキトーに解釈して要点をメモってみた。 リペイント(repaint) 要素のスキン見た目、が変化したときに発生。 ただしレイアウトには影響しな…

IEでjavascriptのスタックトレース的なものを取る

既出だと思うけど作ってみた。 実行例 実行すると以下のような感じで出力される。 callfunc() ... intermidiate3() ... intermidiate2() ... intermidiate1() ... calltop() ... anonymous()

URIエンコードされたクエリ文字列を生成する1行のjavascript関数

メモ的エントリ。 GETしたりPOSTしたりする場面でしょっちゅうURIエンコードされたクエリ文字列の生成が必要だったりすので関数書いてみた。配列内包表記を使ったら1行で書けた。firefox用でしか動作確認してない。IEでは動かないはず。 function makeParam…

javascriptのコードを書くときのイディオムというかテンプレートみたいなもの

javascriptはいろんな書き方ができるのがいいところでもあるし悪いところでもあるが、個人的には洗練されて隙の無い言語よりはこういう隙だらけ言語ってのは好きかも。で、今はvimperatorのプラグインやグリモンのコードにハマっているんだけど、いろんな人…

E4Xチュートリアル(w3schools.comとMDC)を読んだので内容を簡単に列挙してみる

※このエントリは元ネタのサイトの内容を忠実に翻訳する目的ではなく、自分の理解をまとめる目的で書いています。内容に誤りがある可能性があります。誤り等についてご指摘頂ければうれしいです。元ネタ: E4X Tutorialちなみに以下のコードの確認はFirebugの…

「IEにおけるJavascriptパフォーマンスについてのススメ」を読んだメモ

IEBlog:IEBlog : IE + JavaScript Performance Recommendations - Part 1 IEBlogをがんばって読んだのでメモ。内容的には既出のものが多いのであまり参考にならないかも。この記事は以下3つパートで構成される シンボルの検索のパフォーマンスについて 効…

イントラネットで短縮URLサービスlilurlを手軽に活用するためのブックマークレットを作った

今見ているページの短縮URLの発行をlilurlにリクエストするためのブックマークレットを作ってみた。 このブックマークレットを使うためには以下のハックを適用していることが前提となる lilurlにGETメソッドで短縮URLを発行するインターフェースを追加するパ…

AppJetではてなダイアリーのカテゴリクラウドを作ってみた

http://hatena-category-cloud.appjet.net/ 作ったワケ 前々から、キーワードクラウドがいまいちエントリの内容を反映していないのが気になっていたので、AppJetのお勉強がてら自分で作ってみた。 ほんとはブログパーツ化してダイアリーに埋め込めるようにし…

(擬似)スタティック変数を持つ関数を定義する

Cとか(たぶんVBでもあったはず...)で、よく関数にスタティック変数を持たせて、その関数が呼び出される毎に値をカウントさせたり、処理結果をキャッシュさせたりということをやる。同じことを Javascript でやりたい場合、以下のようなイディオムが使える…

関数のパラメタが省略された場合にデフォルト値を代入する

よく、関数のパラメタが省略された場合にデフォルト値を代入するというコードを書く。 contextが渡されたらそれを使う。もし省略されたらdocumentを使う。 というのを素直に書くと以下のようになる。 context = context == null ? document : context; null…

Msxml2.XMLHTTPのsendメソッドでShift_JISなデータをPOSTする方法が知りたい

いろいろ探してみたけど、やりかたがよくわからない。 結局できないのかな? 今の自分の力じゃできそうも無いので、仕方ないので隠しIFrameを使うことにする。 Shift_JIS HTML 上でも XHR で漢字データを送れる!? - Cyokodog::Memo XMLHttpRequestのPOSTメ…

IEでサクッとデバッグコンソール

まあ、Firebug Lite 使えばいいのかも知れんけど...オリジナルは、以下のサイトから。 http://ajaxcookbook.org/javascript-debug-log/ 上記に scrollIntoView() を追加して常に最新行が見れるようにしただけ。

XPathのevaluate結果に対する処理をスマートに書くための便利関数

たぶん、既にだれかが作っていそうだけど... XPathを使ってサクッと自分用のツールを作るために関数作ってみた。こんな感じで使える。 $x('//div').each(function(ele) { //要素ele に対する処理 }); また、返ってくる値はArrayの拡張なので、普通の配列とし…

HTML要素を生成する関数

これまた、どこかにもっといいのがあるはずだけど作ってみた。Resig本からのインスパイヤかも。 tag()関数 こんな感じでHTMLを生成する。 // textArea tag('textarea', { name: "hoge", cols: "65", rows: "10", value: "FUGA", onkeydown: function() { ...…

document.write()したらdocument.close()すること

Firefoxで document.write() するとずっと読み込み中になってしまう。document.close() したら読み込み完了した状態になる。

無名関数実行時のthisの中身

John Resig本でjavascriptを勉強中。掲載されているサンプルを動かしてみたが、うまく動かなかったので実行コンテキストについて調べてみた. 入れ子の無名関数が参照するthisって何? 以下のコードがうまく動かなかった。(掲載されているコードをちょっと省…

javascriptにおけるスコープとクロージャについて

クロージャとかスコープの理解が自分の中であいまいなので整理しておく。 スコープについて javascriptにおけるスコープはfunction単位 ブロックレベルのスコープは無い 変数はそれが作成されたスコープのプロパティ webブラウザ内で実行される場合、グロー…