You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
すっかり記事を書くのが遅れてしまいましたが、Kanasan.JS JSDeferred コードリーディングへ行ってきました (参加者ブログ記事一覧)。JSDeferred は cho45 さん作の、非同期処理を簡単に記述するためのライブラリです。簡単なリファレンスもありますが、実際に動かせるサンプルのほうがどんなものか感覚をつかめると思います。 Deferred オブジェクト JSDeferred では、ひとつの処理をひとつの Deferred オブジェクトとして表現し、処理の流れは Deferred オブジェクトを順につなげた Deferred チェーンで表します。Deferred オブジェクトは三つのプロパティを持ちます。 callback.ok プロパティ (正常) 処理の本体を表す関数。 callback.ng プロパティ 例外処理の本体を表す関数。 _next プロパティ Def
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
GoogleがWeb全体のスピードアップにいよいよ本格的に着手, 一社だけではできないと強調 からリンクのあった、 http://code.google.com/intl/ja/speed/articles/optimizing-javascript.html が日本語かと思ったら日本語じゃなかった・・・・。 いやー、意外とというか文字列については、全然知らんかった。 Closureって便利だし、「おぉ〜俺って使ってるジャン」みたいな気になれるからついつい使っちゃうんだけど、高コストなのね・・・・。反省。 ということで、超適当翻訳。どっかの誰かが書いてるかも。 前おき 著者: Google Chromeのエンジニア Gregory Baker, Software Engineer on GMail & Erik Arvidsson 推奨される経験:JavaScriptの実践的な知識 クライ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Opera で DOM Mutation Event を使用するコードを追記しました。 まとめを追加しました。 Opera パート2に取得できないケースが見つかったため、パート3 を追加しました。 rhino.jpg(幅:300px, 高さ:227px) を、 <img id="rhino" src="rhino.jpg" width="100" height="75" /> と、100 x 75 で表示している場合を例に、画像本来のサイズを取得する方法をご紹介します。 Firefox, Safari, Google Chrome なら image.naturalWidth と image.naturalHeight を利用します。 image.naturalWidth と image.naturalHeight の初期値は 0 です。画像の読み込みが完了した時点で適切な値に更新されます。
2009年06月15日05:00 カテゴリLightweight Languages javascript - undefined may not be undefined これを受けて、nullとundefinedについてさらに調べたのですが.... 404 Blog Not Found:javascript - にはクラスはない typeofでプリミティブかどうか判定する方法ですが、typeof null == "object"なのでその判定が必要だと思います。 とんでもないことを再?発見しちゃいました。 undefinedはただのグローバル変数 定数じゃないんですね。 だから、以下が動いちゃう。 p(undefined); undefined = !undefined; p(undefined); NaNとInfinityもただのグローバル変数 以下も動いてしまいます>< p(NaN
2009年06月13日22:00 カテゴリLightweight Languages javascript - にはクラスはない かえってわかりにくくなっている感じをかつてさんざん実感したので。 JavaScriptのオブジェクトについて考察してみた - あと味 JavaScriptにおけるほとんど全てのデータはオブジェクトである オブジェクトの定義にもいろいろありますが、ここでは「メソッドを持つ」という狭い意味においても事実だということです。実際に見てみましょう。 p(true.toString()); p("String".toString()); p((1).toString()); p((3.14159265).toString()); p([0,1,2,3].toString()); p({q:"answer to life, the universe, and everythi
ブラウザの表示領域を取得するに当たって、「ブラウザの種類」×「表示モード(標準/互換)」によって参照するプロパティが変わってきます。 IE、FireFox、Opera、Safariにて、表示モード毎に参照すべきプロパティをまとめてみました。(Safariについては2007/05/20に追記) 調査したのは、下記のプロパティです。 window.innerWidth window.innerHeight document.body.scrollWidth document.body.scrollHeight document.body.offsetWidth document.body.offsetHeight document.body.clientWidth document.body.clientHeight document.documentElement.scrollWidth d
"α".toUpperCase(); //=>"Α" "Α".toLowerCase(); //=>"α" "ω".toUpperCase(); //=>"Ω" "Ω".toLowerCase(); //=>"ω" "ψ".toUpperCase(); //=>"Ψ" "Ψ".toLowerCase(); //=>"ψ" "ա".toUpperCase(); //=>"Ա" "Ա".toLowerCase(); //=>"ա" "â".toUpperCase(); //=>"Â" "Â".toLowerCase(); //=>"â"
配列要素はソート (並べ替え) される。ソートは必ずしも安定的ではない(つまり、等価と比較された要素が元の順で残るとは限らない). comparefn が undefined でないならば、それは 2 個の引数 x と y を受け付け、 x < y ならば負の値、 x = y ならば 0、 x > y ならば正の値を返す関数であるべきである。 15.4 Array オブジェクト (Array Objects) 安定であると仮定した実装はしないでください。(複数列でのテーブルソートなど注意) 以上。 これより先は脱線なので読み飛ばしてもらってかまいません。 脱線1 Tagrolls on Delicious このページを開いたとき、Firefox と Safari ではタグがアルファベット順にソートされる。(たぶん IE も) Chrome と Opera では変な順にソートされる。 htt
オライリーの[asin:4873113296:title]を読んでて気づいたんだけど、JavaScriptってUnicodeで書けば予約語以外は全部日本語にできるんですね!オブジェクトもメソッドもプロパティも全部。UnicodeはECMAScript 3rd Edition以降で対応したらしい。IE6でも動く。これ常識なのかな?あんまりそういう記事を見たことなくて普通に知らなかった。 「それ、○○でもできるよ!」というツッコミが来そうなところだけど、JavaScriptは気軽だからいい。 必要な環境 日本語プログラミングをするために必要な環境は以下のとおり。 ブラウザがECMAScript 3rd Editionに対応していること HTMLをutf-8で保存していること JavaScriptをutf-8で保存していること というわけでこんなのができる こんなのが動いてちょっと感動した。以下
Gareth HeyesさんがHackvertorに hasegawa タグを追加してjjencode機能を実装してくれました! すげーーーーーー! ちなみに、単純に alert するだけじゃなく eval 相当なので好きなJavaScriptプログラムが記号だけで書けます! javascript:$$=-~-~[],$=-~$$,$$$$=$$<<$$,$$$=$$$$+~[];$$$$$=($-$)[$$$$$$=(''+{})[$$+$]+(''+{})[$-$$]+ ([].$+'')[$-$$]+(!!''+'')[$]+({}+'')[$+$]+(!''+'')[$-$$]+(!''+'')[$$]+(''+{})[$$+$]+({}+'')[$+$]+('' +{})[$-$$]+(!''+'')[$-$$]][$$$$$$];$$$$$($$$$$((!''+'')[$-$
「JavaScript 第5版」のp174のborrowMethods関数について。 function borrowMethods(borrowFrom, addTo) { var from = borrowFrom.prototype; var to = addTo.prototype; for (m in from) { if (typeof from[m] != "function") continue; to[m] = from[m]; } } 一見何の問題もないように見えるが、変数mがグローバルになってしまっている。 for/inやfor(;;)での変数宣言忘れはよくあることだ。 例えばWebKitのVersion 4 Public Beta (5528.17, r44282)現在では、コンソールのkeys関数とvalues関数が、同じようなミスをしていて、変数kがグローバルにな
見落としてないよ。 アルファベット禁止でjavascriptを書いてみた - sub Diary (仮) …ね、簡単でしょう? お詫びというのも変だけど、もっと複雑にしてみた。 これで、alert 出す JavaScript からアルファベットと数値を取り除けます(Firefox限定)。今は固定で deadbeef! という文字列を alert してるけど、あと一歩で jjencode できそう。 _ = []|[]; $ = _++; __ = (_<<_); ___ = (_<<_)+_; ____ = __+__; _____ = __+___; $$ = ({}+"")[_____] + ({}+"")[_] + ({}[$]+"")[_] + (($!=$)+"")[___] + (($==$)+"")[$] + (($==$)+"")[_] + (($==$)+"")[__]
タイトル変えました。旧タイトル「JavaScriptでよく使う書き方」。よく使うけど毎回忘れる。 正規表現にマッチするかどうか。 RegExp#testを使う。 /abc/.test("abcdefg") // => true String#searchはマッチした位置を返す。マッチしない場合は-1。先頭にマッチすると0でfalseなので注意。真偽値が欲しい場合はString#searchを使わない。 "abcdefg".search(/xxx/) // => -1 "abcdefg".search(/def/) // => 3 "abcdefg".search(/abc/) == false // => true 正規表現の部分マッチを得る。 部分マッチを得るには、RegExp#execかString#matchを使う。execとmatchの速度は大して変わらない。 正規表現のベンチマー
はじめに http://b.hatena.ne.jp/guide/plus がリリースされましたね! というわけで、「てなブックマークプラスに登録していない(正確には、 plus アイコンを出していない)ユーザーをエントリーページから抹消する JavaScript」を書いてみました!! これで、はてブプラス民に囲まれて幸せですね! やったね! ご自由にお使いください(Firefox or Safari で動くと思います) Ten.Selector.getElementsBySelector('ul#bookmarked_user > li').filter(function(e) { return !e.getElementsByClassName('plus_icon').length }).forEach(function(e) { e.style.display = 'none' }
Firefoxではscript要素のdefer属性がサポートされていて、これを使うと、DOM構築後に実行したいスクリプトのインデントを一段減らすことができて便利なのだが、Safariではサポートされていない。 <head> <script defer="defer"> document.body.style.backgroundColor = "#00ffff"; </script> </head> どうしても使いたいので、どうにかするスクリプトを書いた。 <head> <script src="defer.js"> document.body.style.backgroundColor = "#00ffff"; </script> </head> defer属性の代わりにscript要素のsrcに"defer.js"を追加するだけで使えるようになる。 javascripter's gis
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く