今までこう書いてたのが count[key] = count[key] ? count[key] + 1 : 1; こう書けることが判明した。 count[key] = ++count[key] || 1; コメント欄への回答 count[key]がNumberまたはundefinedであるとして、個人的には count[key] = (count[key] || 0) + 1; のほうが好みです。 JavaScriptでは問題ないとはいえ、言語によってはi = ++iの動作が未定義だったりするので。 前者の書き方とこの書き方は実は問題があって、Object.prototypeに定義されてるメソッドとハッシュのキー名がかぶるとおかしくなる。なので本当はcount.hasOwnProperty(key)でチェックするのが正しいのだけれど、出現回数のカウントごときでメソッド呼び出しとかしたくな
デスクトップアプリを開発してると、ListView のカラム幅が足りなくなったときに「My Docume...」のように自動的に末尾を「...」で埋めて切りつめてくれる機能がある。ウェブでも同じことをやりたかったので、作ってみた。 まず、文字列の幅を測定するには、 <span id="ruler" style="visibility:hidden;position:absolute;"> </span> みたいな隠しエレメントを用意しておいて、 String.prototype.getExtent = function(ruler) { var e = $(ruler); var c; while (c = e.lastChild) e.removeChild(c); var text = e.appendChild(document.createTextNode(this)); var
はてなブックマークのブックマーク数が多い順に記事を紹介する「はてなブックマーク数ランキング」。7月21日(月)~7月27日(日)〔2025年7月第4週〕のトップ30です*1。 順位 タイトル 1位 両親の入院と介護と看取りと相続についてまとめておく|akita11 2位 一番しんどかったと振り返る「コンサル転職して1~2ヶ月ごろに書いたメモ」、どれも命令形で修羅場感があるがコンサルの「スライドづくり」の鉄則が書いてある - Togetter [トゥギャッター] 3位 「黒は使うな。限りなく黒に近いグレーを使え」「罫線はグレーにしろ」コンサル転職して1-2ヶ月頃に書いていたメモ(上司からの指摘一覧)が有益すぎる - posfie 4位 史上最高の選挙特番を観たのでこの素晴らしさを伝えたい|テリジノ 5位 最近のHTMLを改めてちゃんと学んでみた 6位 参政党、さや氏―異色の履歴・不遇の遍歴(
コンソール上から JavaScript で Web ブラウザを操作できる、JS Commander というプログラムを作ってみました。JS Commander を立ち上げるとプロキシサーバが同時に起動し、このプロキシサーバを使うように Web ブラウザを設定すると、コンソール上で JavaScript のコードが入力できるようになります。Web ブラウザ上の JavaScript を自由に実行できるコンソールには FireBug, FireBug Lite, jsh, MozRepl などがありますが、JS Commander の特徴は以下のような感じです。ブラウザ非依存 - XmlHttpRequest が使えるブラウザであればたぶん動きます。readline を使った操作 - bash などのシェルと同じような emacs 風キーバインドが使えます。別のマシンにあるブラウザも操作可能
Jeff Atwood / 青木靖 訳 2007年2月26日 レジナルド・ブレイスウェイトが書いていることを読んだとき、私はそんなわけないだろうと思っていた。 私と同様、この著者は、プログラミングの仕事への応募者200人中199人はコードがまったく書けないということで苦労している。繰り返すが、彼らはどんなコードも書けないのだ。 彼が引用している著者というのはイムランのことで、彼は単純なプログラムも書けないプログラマをたくさん追い払っているということだ。 かなりの試行錯誤の末に、コードを書こうともがいている人たちというのは、単に大きな問題に対して苦労しているのではないことがわかった。やや小さな問題(連結リストを実装するというような)に対して苦労するということでさえない。彼らはまったくちっぽけな問題に苦労しているのだ。 それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz
<html> <head> <title>「読むプログラム/実行する文章」</title> </head> <body style="line-height:16px; font-family:Helvetica; font-weight:bold;"> <!-- 「デザインへの視点を文章で述べること「文章自体がプログラムとして実行可能なこと」 「このページのデザインが、このプログラムコードから生成されていること」を実現します --> <script type="text/javascript"> EXONEMO = this.document//の上での紙上パフォーマンス document.title = "We_design_html"//です // それでは処理の開始です function We_design (executable, text) { // ここではJavaScrip
2006-05-20 ua firefox tool 拡張機能スレ(何) の part 12 で、userChrome.js の使い方がわからん、というような質問が出ていたのでちょっとググってみましたが今のところあまり情報が無いようなので、userChrome.js の簡単な説明と私の使い方などを少し書いてみます。 ご存知のように、Firefox には、userContent.css と userChrome.css というふたつのユーザスタイルシートがあって、userContent.css のほうは、web ページのコンテンツに対するユーザスタイルを定義するものであるのに対して、userChrome.css は Firefox 自体の外観に対するユーザスタイルを定義するものです。 これらはあくまでスタイルシートですが、最近の流行(?)が、ユーザースクリプトと呼ばれるものです。Firefo
JavaScript[J]と[K]で、次の画像/前の画像へ移動できるようにするブックマークレット。ウェブで、写真や画像を、よく見る人には便利なことと思う。 以下のページのように、一つのページの中に多数の画像があるページで利用する。(全部のページで正常動作を確認した。) Dark Roasted Blend: Lords of the Logistics, Part 3らくがきVintage Photographs -- Entries on 3rd January 2006Flickr: Photos from hiramekii スクロールをするために、視線をスクロールバーへやったり、マウスを操作したりすることを煩わしく思ったため作った。ページの上部に次々に写真が現れるため集中できる。おかしな位置でスクロールが止まり、画像が切れてしまうこともない。 以下は、Firefox 2.0とIE
グラフ作成ツールが人気ですよね。べつやくメソッドも地位を確立しつつあります。 さてそうした流れを受けてご紹介したいのがEJSChart。Javascriptだけで実現できるグラフ作成ツールです。 残念なことにまだ公開前なので全容は不明ですが、やたら高機能らしいです。 ズームやスクロールが可能であるばかりか、マウスイベントを拾ったり、ヒントの表示などもサポートしている模様。ぐっとインタラクティブな表現が可能になりそうですね。 また、グラフの種類も豊富、かつ、XMLによるデータ連携もできるようです。 サイトから推測するに有料かと思われますが、早く試してみたいところですね。
Kawa.netxp AjaxZip 2.0 - Ajax郵便番号→住所自動入力フォーム(CGI不要版) AjaxZip2は、昨年公開した 『ajaxな住所入力フォーム』 の新バージョンです。 郵便番号を入力すると、該当する都道府県名・住所が自動的に入力されます。 Ajaxと JSON フォーマットを利用するJavaScriptライブラリとして公開しました。 JavaScript のみで稼動するため、サーバサイドで稼動するCGIプログラムは不要です。 郵便番号→住所変換処理は全てクライアントサイドのJavaScriptで行います。 既存 HTML の住所入力フォームをたった3行書き換えるだけで利用できます。 簡単に設置できるため、プログラムに詳しくない方でも導入していただけると思います。 以下の住所入力フォームに、7桁の郵便番号を入力してみてください。 【2007/12/09 追記】 jQ
前回の「第4回:JavaScriptライブラリの作成」で作成したCalcライブラリでは、オブジェクトの初期化で特に複雑な処理は不要でしたが、より高度なライブラリになると多数の関数を定義したりループを回したりと、初期化処理の中で変数を必要になるシーンが増えてきます。 JavaScriptの変数スコープは「{}」で囲われたブロック単位でなく、関数単位になります。関数外でvar宣言した変数も全てグローバル変数として定義されるため、例えばライブラリ中で リスト5:calc.cgiサンプルCGI(Webサービス側) という初期化コードを記述した場合、tmpとiの2つのグローバル変数を利用(汚染)することになります。 ライブラリは他のプログラムと併せて利用するためのものですから、ライブラリ外のプログラムが変数tmpやiを別の用途で利用していた場合に影響が出てしまう可能性があります。 ライブラリの初期化
このエントリーは以下のエントリーへの解答です 404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門 はじめに 僕はあまりブログを一生懸命書くのは嫌いです。で、いつも適当に言葉は少なめにソースだけで解説しているが。今回は、それだけでは伝わらないところまで突っ込まれてしまったので、僕が伝えたかった意図をこと細かく説明していこうと思います。 文章が苦手なので、変な言い回しで読み辛かったりすると思いますがよろしくお願いします。 一応、弾さんには断っておきますが、別に弾さんに噛みついている訳ではないです。ただ、弾さんのような有名人に突っ込まれたら、僕の講義を聞いてくれたエンジニアが嘘を教えられたと不安になってしまうのではないかと思ったのです。僕の講義を聞きにくれた人には、虚像でもいいから 100 % の自信と勇気を付けて欲しい(プログラムを書く上で
http://blog.livedoor.jp/dankogai/archives/50808279.html http://d.hatena.ne.jp/amachang/20070413/1176421425 「Object.prototype」って書いちゃうと勘違いする人も多いと思うので、MyObject.prototypeとかSomeClass.prototypeとか何でも良いけど別の書き方にすべきだと思った。 Object.prototype = {/* ... */}は、よほど特殊な事情がない限り避けるべきで、 MyObject.prototype = {/* ... */}で困るのはconstructorプロパティが消えてしまうぐらいで、普通は困らない。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く