移転しました http://please-sleep.cou929.nu/20101117.html
移転しました http://please-sleep.cou929.nu/20101117.html
  
  minifyされたJavaScriptへのブレークポイントでの処理の挟み込み Firebugのブレークポイントは行に貼るのでminifyされたJavaScriptと相性が悪い。 例えばjQuery.ajaxが定義されている行にFirebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - 文殊堂の要領でconsole出力を挟んだとして、 無関係な関数の呼び出しまで対象になってしまう。 それを回避するためにブレークポイントに設定する条件を変えてみる。 !(!(arguments.callee === jQuery.ajax) || (/* やりたい事(式)をカンマ区切りで start */console.info(arguments.callee.toSource())/* end */,true)) コピペ用 !(!(arguments.ca
      
  End script and style with newline? Support e4x/jsx syntax Use comma-first list style? Detect packers and obfuscators? (unsafe) Preserve inline braces/code blocks? Keep array indentation? Break lines on chained methods? Space before conditional: "if(x)" / "if (x)" Unescape printable chars encoded as \xNN or \uNNNN? Use JSLint-happy formatting tweaks? Indent <head> and <body> sections? Keep indentat
自分用メモ // JavaScript でクロージャを書くときこう書く事が多い (function() {})() // 何故なら // function() {}() // と書くと // function() {} が式ではなく、文として解釈されてしまうからだ。 // 文として解釈されないためには、文の途中(最初以外)に function と書いてやる必要がある // なので、まず開きカッコを書いてやる。 ( // の後に function() {} // と書いてやると function は式になる ) // 正確には、カッコの対は The Grouping Operator という演算子である。 // カッコ以外にも var a = // のように代入演算子のあとでもいい function() {} // つまり、以下のような記述も可能である。 var b = function()
JavaScriptに、applyとcallというメソッドが用意されていますが、自分なりにapplyとcallの丁寧に説明をしてみようと思ってこのエントリーを書くなどをしてみます。 applyとcallは非常に似たメソッドなので、まずはcallから説明します。 callメソッドとは? callメソッドは以下のように呼び出します。 methodA.call(thisArg, [, arg1 [, arg2, ...]]); methodAには任意の関数(メソッド)を指定します。 callの引数は第一引数にmethodAのthisとしたいオブジェクトを指定して、第二引数以降はmethodAに渡したい引数があれば、カンマ区切りでそれぞれ指定します。 callメソッドは、すべての関数が共通して持っているメソッドです。すべての関数はFunctionクラスのオブジェクトで、callはFunction.
GoogleではJavaScriptは特定のコーディングスタイルで統一されるようにClosure Linterという専用のスクリプトを使用しているそうです。 Google JavaScript Style Guide(Google JavaScript Style Guide 和訳)という規則に従ってjsのコードは書かれていて、その規則に沿っているかを確認するgjslintとその規則に合うように修正するfixjsstyleからなるスクリプトです。 インストール方法 How to Use Closure Linter – Closure Linter – Google Code pythonで書かれているのでeasy_installを使ってインストールします。 まずはPythonをインストールしてなかったらインストールして、次にeasy_installコマンドを使うためにsetuptools
When collaborating with lots of engineers as we do here at Google, it’s important to keep a consistent coding style. To this end, we recently open sourced the Google JavaScript Style Guide. Today we’re happy to announce we’re open sourcing a tool that will help you follow that style guide with minimal manual effort - the Closure Linter. Take for example, this code: var x = 10 var y=20; for(var i =
Note: Any future development of the JSCoverage code base will likely occur in the new JSCover project on GitHub, which reuses a substantial amount of JSCoverage code and aims for a high degree of backward compatibility with JSCoverage. JSCoverage itself is unlikely to have any further releases. JSCoverage is a tool that measures code coverage for JavaScript programs. Code coverage statistics show
How to Use Closure Linter This document describes how to install and use Closure Linter. Install Closure Linter Use the Python easy_install utility to download and install Closure Linter. Linux To install Closure Linter on Linux, execute the following commands: $ cd /tmp /tmp$ sudo easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz Mac OS X To install Closure Lint
JavaScriptでログを表示するのに使えるライブラリ「Blackbird」のご紹介。 出力したいメッセージを指定するだけできれいに整形して表示してくれます。 例えば、以下のようなJavaScriptを実行してみます。 log.debug( 'this is a debug message' ); log.info( 'this is an info message' ); log.warn( 'this is a warning message' ); log.error( 'this is an error message' ); ↑すると、こんな感じで素敵に表示してくれちゃいます。 アイコンと色で視覚的にメッセージを区別することができるので、後から見分けるのも簡単です。 使い方 使い方は簡単で、ファイルをダウンロードした後、headタグ内でJSとCSSを読み込むだけでOKです。 <
      
  Intro: “There are 10 types of people in this world. Those who understand binary and those who don’t” – Author Unknown Javascript is loaded with hidden features that can that be used for more than DOM manipulation and event handling. Javascript supports binary operations pretty well, and now I’m going to show you how to master them. By the end of this tutorial you will learn the following. Base Con
Report Cyclomatic complexity Unused variables Undefined variables Warn About == null About debugging code About unsafe for..in About arguments.caller and .callee About assignments if/for/... About functions inside loops About eval About unsafe line breaks About potential typos in logical operators When code is not in strict mode When new is used for side-effects Assume Browser NodeJS jQuery Develo
jQueryヘビーなアプリケーションの問題点と、MVCによる構造化の必要性 jQueryは、ブラウザ上で動くJSアプリケーションの開発生産性を劇的に向上させました。DOM操作による動的なページ書き換え処理などは、セレクタを使ってちょろっとコードを書くだけで、ほんの数行で記述できてしまいます。 しかし、この方法の延長で、大規模なJSアプリケーションを構築することは果たして現実的でしょうか。例えば「GMail」や「New Twitter」程度の規模のJSアプリケーションを書かなければならないとしたら、どうでしょう? 大規模なJSアプリケーションを開発するには、こういった手法を延長するのではなく、より洗練されたデザインパターンを導入する必要があります。この目的にぴったりのデザインパターンが、「MVC」デザインパターンです。 MVCパターンは、Webの世界ではサーバサイドプログラミングで広く知られ
      
  @higayasuo は現在HTML5のアプリを開発しており、クライアントをJavaScriptで開発中。ソースを統一させる為にサーバーサイドもJavaScriptを採用したとの事。
      
  Shibuya.es、じゃなかった、Shibuya.es #3 行ってきました。 デブサミでの Shibuya.* はやっぱり場所柄からか少々おしとやかやってんなあ…… どの話もおもしろかったんですが、nazoking さんの "WiiでSAGOOL" が個人的にプチツボだったので、ちょっぴり検証してみました。 一般化すると「元のソースをできるだけ汚染しないで、関数にエラー処理を追加する」ということですから、いわゆるアスペクト指向うんぬんが得意としている領域ですよね。 確か nazoking さんの方法は(以下、記憶で書いているので間違ってたらすいません)、エラー処理を行うラッパーを用意し、関数呼び出しをそのラッパー経由で行うよう、呼び出し側を自動的に書き換えるというもの。 これにより外部参照しているスクリプトについては書き換えることなくエラー処理が追加される。一方 html 内に記述され
この和訳について¶ この文章は Google JavaScript Style Guide を非公式に和訳したものです. 内容の正確性は保証しません. ライセンスは原文と同じく CC-By 3.0 とします. フィードバックは Issue への登録 , あるいは Kosei Moriyama (@cou929 または cou929 at gmail.com) へ直接お願いします. この和訳のリポジトリは こちら です.
pjaxの前にpushStateとは AjaxとjQueryの説明は不要として、pushStateとはなんぞや。 pushStateを使ってブラウザの履歴に対する操作をし、HTMLの一部のみを書き換える動作でもブラウザの戻る/進む機能を実現できる方法のひとつ。Ajaxなページを再現し、かつURLを見慣れた方法で自然にpermalinkを表現できる。 有名なところではGitHubで使われてるアレ。 hash fragment (/#!/) ブラウザの履歴を機能させるため、URL の fragment (#) を使ってAjaxなページを実現する方法。一時期もてはやされた感があるが、さらなる「#!」URL批判 - karasuyamatenguの日記 など合理的な反論があり、これから導入するのはためらわれるところ。 有名なところではTwitterで使われているあの厄介者。 pjaxとは pjax
前回の「第4回:JavaScriptライブラリの作成」で作成したCalcライブラリでは、オブジェクトの初期化で特に複雑な処理は不要でしたが、より高度なライブラリになると多数の関数を定義したりループを回したりと、初期化処理の中で変数を必要になるシーンが増えてきます。 JavaScriptの変数スコープは「{}」で囲われたブロック単位でなく、関数単位になります。関数外でvar宣言した変数も全てグローバル変数として定義されるため、例えばライブラリ中で リスト5:calc.cgiサンプルCGI(Webサービス側) という初期化コードを記述した場合、tmpとiの2つのグローバル変数を利用(汚染)することになります。 ライブラリは他のプログラムと併せて利用するためのものですから、ライブラリ外のプログラムが変数tmpやiを別の用途で利用していた場合に影響が出てしまう可能性があります。 ライブラリの初期化
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く