JavaScript

本気でやるなら innerHTML を活用すべき

本気でやるならonclick属性は避けてライブラリを活用すべき - VTuberになったプログラマーの魂の残滓僕は逆に onclick 属性を多用してしまいます。 たぶん『本気』の度合いが違うんだと思います。 『デザイナーとの分業の点からみれば使用しないほうが好まし…

Array.shiftの罠

prototype.js 1.4 では IE5 とかのため?*1に Array.shift を独自に実装している。 Array.prototype.shift = function () { var result = this[0]; for (var i = 0; i < this.length - 1; i++) { this[i] = this[i + 1]; } this.length--; return result; } …

JavaScriptの怖い話

prototype.jsのバージョン1.5.xを使っていたコードでした。そのコードはElement(prototype.jsが定義したクラス)のオブジェクトに独自に select というプロパティを加えていました。用途はフラグ変数でした。prototype.jsのバージョンをv1.6.0.2に上げた時、…

JavaScripでハッシュテーブルを実装してみた

JavaScriptで実装してもまったく意味ない(笑)ただの練習です。 こんな感じでいいんだろうか? String.prototype.hash = function(mod) { var sum = 0; for (var i = 0, len = this.length; i < len; i++) sum += this.charCodeAt(i) * i; return (mod) ? (…

JavaScriptのスコープとGoogleの謎

var x = 'hoge'; { var x = 'fuga'; } alert(x) //-> 'fuga' この挙動をちゃんと理解していなかった。 言い訳になるかもしれないが、使う機会がないからだ。JavaScriptではこの場合、中括弧はあってもなくても同じ動きをする(多分)。 ところが、Google Rea…

SpiderMonkeyで外部の.jsファイルを読み込む

JavaScriptでアルゴリズムの修行とかちょっと長いコードを扱うときは、FirebugよりもSpiderMonkeyを使ったほうが便利だったりします。 SpiderMonkeyで外部の.jsファイルを読み込むときにはload関数を使います。 hamabebe@toranoana ~/workspace/js % js js> …

JavaScriptを最速で評価する方法

Firefoxでは、ブックマークに対してキーワードを指定することで、アドレスバーでそのキーワードを打ち込むとそのブックマークに飛ぶことができます。 その際、キーワードの後ろに文字列を与えると、アドレス中の%sと置き換わる。つまりこんな感じにブックマ…

Firefox3でunsafeWindow内オブジェクトのprototypeがいじれない

昨日のエントリで書いたスクリプトを自分用にグリモン化しようとしてハマった。Firefox3 の Greasemonkey, unsafeWindow 内の prototype がとれない - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtechhttp://unknownplace.org/memo/2007…

Googleの難読化されたJavaScriptと戦うための戦略

Google ReaderのスペースキースクロールをLDR風にするbookmarklet javascript:(function(){$.prototype.qh=function(a){if(this.ka&&!this.Ee||!this.Ka)return;var b=this.Ee?u(PD):this.ea();b.scrollTop+=a?+100:-100};$.prototype.down=function(a){this…