行数の数え方: Days on the Moon HTMLのtextareaのvalueやテキストファイルの行数を数えるには改行コード「\n」の数を数えばいいわけですが、どうやって数えるかによって処理速度に大きな差が出るという話です。実験環境はSpiderMonkeyとJScript。 Days on the Moon
jQueryのドル記号「$」は、理不尽なくらいに大活躍します。あまりにも何でもできるので、「ありゃ何なんだ?」と思いますよね。$(...) という形で呼び出せるので、関数なのは確かです。JavaScriptでは、ひとつの関数名に対して呆れるくらいにオーバーロード(多義的定義)ができます。 内容: コンストラクタあるいはクラスとしての関数 メソッドとしての関数 名前空間あるいはモジュールとしての関数 関数/オブジェクトとしての関数 試してみる コンストラクタあるいはクラスとしての関数 関数は、オブジェクトのコンストラクタとして使用できます。 function Point(x_, y_) { this.x = x_ || 0; this.y = y_ || 0; } お尻にアンダースコアが付いた引数名 x_, y_ は省略可能のつもりです。new Point()、new Point(2)、ne
なかなかどうして、怠惰な若輩者につき不明な点が多々あるため先人の知恵をお借りしたく候。というわけでいろいろ知恵や知識などいただきます。・・・消化不良でしたorz setTimeoutの中の小難しいお話 自分だけじゃ到底調べられないし分かる術もない。Cなんて知るか。だのにこうしてなんとなくでも知ることができるのはありがたいことです。 http://labs.gmo.jp/blog/ku/2007/09/firefoxsettimeout.html Firefoxだけで少し古い記事だけど今でも同じようなものかな。他に私がわかるような資料もないのでこちらをベースに考えさせてもらいます。大きな変更はないだろうし。 タイマースレッド URL先読んだだけではイメージできなかった。整理のため箇条で要約。 Firefoxにはタイマー処理だけを管理している専用のスレッドがある(TimerThread) タイ
There are many common pitfalls when it comes to writing memory-efficient and fast code. In this article we’re going to explore some test-proven approaches for writing code that performs better. JavaScript engines such as Google’s V8 (Chrome, Node) are specifically designed for the fast execution of large JavaScript applications. As you develop, if you care about memory usage and performance, you s
RequireJS の2.0 から導入された shim を利用して簡単に読み込めたのでメモ。 最初にまとめを書く RequireJS で読み込めた html ファイルで script が一つで済むので嬉しい。 ディレクトリ構成 $ tree . ├── index.html ├── js │   ├── libs │   │   ├── backbone-min.js │   │   ├── mustache.js │   │   ├── require.js │   │   ├── underscore-min.js │   │   └── zepto.min.js │&
こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。
2012年10月23日に、SIE 5を公開しました。いくつかのバグを修正しています。 ダウンロード (無償) http://sourceforge.jp/projects/sie/downloads/57166/sie-5.zip/ 変更履歴 2012-10-23 version 5 (Commit: 347191024ff2779abc811b1cb27a6630fc2f4cfd) 即時関数を使って、Coreモジュールを軽量化 insertBeforeメソッドの循環参照の問題を解決 SVGSVGElementのメソッドの記述量を減らした Documentに関して、Specの編集 getElementByIdメソッドの修正 チケット #29885 「onevent属性でコード内の特定の変数がundefinedとなる」を修正 (beta fixed) チケット #29831 「animate
この記事は賞味期限切れです。(更新から1年が経過しています) JavaScriptユニットテスト一年生の私が、Nettuts+ のチュートリアルで知ったテストツール 「testem」のお陰で大変捗ったので是非お勧めしたく、ここで紹介してみます。 testem ってなに testem via GitHub : airportyh/testem Unit testing in Javascript can be tedious and painful, but Testem makes it so easy that you will actually want to write tests. 要するに、面倒なJSのユニットテストをより快適にしてみんなでハッピーにテスト書こうよ!というツールです。 testem自体はnode.jsベースで動作し、Jasmine/QUnit/Mochaに対応して
今年の RubyKaigi 2010で、 Sarah Meiさんによる JasmineというJavaScriptのテスティングフレームワークの紹介発表がありました(発表時はRCでしたが、先日(2010年9月14日)に無事バージョン1.0がリリースされています)。 今回はこの Jasmine を紹介したいと思います。 特徴 Jasmineは以下のような特徴を持ったテスティングフレームワークです。 JavaScript自身でJavaScriptをテスト可能 RSpec風の記述が行える スタンドアローン版とRubyGem版 JavaScript自身でJavaScriptをテスト可能 テスト用に専用の言語・フォーマットを使う必要はありません。 RSpec風の記述が行える 全体の構造は、RSpecのユーザーにはお馴染のdescribe や it という記法で記述します。 Rubyのブロックほど簡潔に
Nokia Developerより コアJavaScriptの落とし穴 evalやFunctionコンストラクタの使用を避けること evalやFunctionコンストラクタの使用は、ソースコードを実行可能なコードに変換しなければいけないので、毎回スクリプトエンジンを呼び出すことになる高価な演算である。 加えて、evalの使用時には文字列の文脈を実行時に解釈しなければいけない。 Using eval or Function constructor are expensive operations as each time they are called script engine must convert source code to executable code. Additionally, using eval the context of the string has to be i
Today we're going to discuss an effective set of patterns for large-scale JavaScript application architecture. The material is based on my talk of the same name, last presented at LondonJS and inspired by previous work by Nicholas Zakas. Who am I and why am I writing about this topic? I'm currently a JavaScript and UI developer at AOL helping to plan and write the front-end architecture to our nex
JavaScript has been described as a Functional Oriented Language (this as opposed to Object Oriented Language). The reason is because functions in JavaScript do more than just separate logic into execution units, functions are first class citizens that also provide scopeL1 and the ability to create objects. Having such a heavy reliance upon functions is both a blessing and a curse: It's a blessing
たとえばこんな感じか。 function defined(v) { return (v !== undefined && v !== null) } // ** objからキー _init に格納されるオブジェクトを引き抜き、 // ** objの残りメンバで破壊的に拡張して返す。 // ** objにキー _init が無い場合は空オブジェクトを新規作成して拡張 function build(obj) { var base; var key; if(defined(obj._init)) { base = obj._init; delete obj._init; }else { base = {}; } for(key in obj) { if(!obj.hasOwnProperty(key)) continue; base[key] = obj[key]; } return base;
intro この記事は、 東京Node学園祭2012 アドベントカレンダー : ATND の 3 日目の記事です。 (日付変更線は、はてな時間を採用しております。。 ごめんなさい m(__)m) 非同期と next() next() とは、 Express や Connect 、 Mocha 、 そして一部のフロー制御ライブラリで使われている、 関数のことをさしています。 今回は、これがどういう機能で、どういうふうに実装されているのかをスクリーンキャストで紹介します。 vimeo next() at async flow control from Jxck on Vimeo. まとめ 今回書いたコードはこちらです。 https://gist.github.com/3906371 実装方法は色々あるかと思いますが、だいたいこんな感じで実装できて、使うことができる、 わかってしまえばそんなに難
How you write your JavaScript code can have a big impact on your app's performance. Learn how to avoid common mistakes and how to architect your app for performance. Avoid unnecessary DOM interactions In the Windows Store app using JavaScript platform, the DOM and the JavaScript engine are separate components. Any JavaScript operation that involves communication between these components is relativ
SpiderMonkey(libjs)でperlからjsを実行できるらしい Claes Jakobsson / JavaScript - search.cpan.org Thomas Busch / JavaScript-SpiderMonkey - search.cpan.org が、どうやら、sysytem("somothing/command")にように実行する程度らしい。 単純な構造体はjsonでも連携できますが、更にxsのようなinteractiveな環境が欲しいんですけど。 llvm ( emscripten ) のようなクロスコンパイルを調べてみますか 2012/10/15追記 JE - search.cpan.org JavaScript::V8 - search.cpan.org というものあるみたい。 入力フォームのvalidationをクライアント側(js)とサーバ側
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く