旧ブログのRequireJSネタがひそかにブクマされつづけているので需要があるかなと思い、最近調査したバージョン2.0の機能についてまとめます。元ネタはこちらです。 Upgrading to RequireJS 2.0 · jrburke/requirejs Wiki · GitHub 依存関係の明示 従来のバージョンでjQueryプラグインを利用するには、RequireJS用のorderプラグインを使って読み込み順序を指定する必要がありました。jQueryプラグインが先に読み込まれると「jQueryなんて見つからねーよ!」と言われてしまうためです。これはjQueryに限らず様々なフレームワーク・ライブラリで起こりうる一般的な問題と言えます。 define('order!jquery', 'order!jquery.someplguin'], function($) { // ... })
猫も杓子もCoffeeScriptの世の中、CoffeeScriptに手を出してしまったがために(JavaScriptの世に)帰らぬ人となりつつある人はたくさんいると思う。 僕も最近CoffeeScriptに手を染め五分で帰り途を見失ってしまった。 CoffeeScriptの編集にはujihisa氏のshadow.vimが便利だ。 shadow.vimを手短に紹介すると、main.js を開いて編集していると思ったら実はmain.js.shd(中身はCoffeeScript)を編集していて、気づいた時にはすでにmain.js.shdのコンパイル結果がmain.jsに保存されている、というvim-pluginである。 さて、JavaScriptを本格的に使うには、モジュールシステムを避けて通る事はできない。 グローバル変数を多用することも許されているJavaScriptでは、ライブラリによる
丸坊主なのに寝癖が付く男、正宗です。前回の記事「Actionscript3erが覚えるJavascriptでのクラス開発まとめ」でjavascriptをActionscript3ライクに書く方法をまとめてみたので、今度は練習がてらHTML5をさわってみました。 WebGL版です。 クリックで別ウインドウで開きます。 画像クリックすると別ウインドウで開きます。 うまく動かない場合はWebGLを使わない素のCanvasレンダリングも作ってみましたのでこちらのリンク先を参照してください。 スクロールで3D空間をうねうね動く的なことがやりたいんだろうな、って思ってもらえたらうれしいです。ちなみに背景には旅行の思い出の写真をあしらって、ナイスな感じに仕上げました。 ソースは適当にほじくって見てみてください。 今回は、はじめてHTML5を触ってみた中でわかったことを書きたいと思います。 HTML5でJ
togetter : JavaScriptの名前空間のスマートな使い方 ClockMakerさんのつぶやきから始まった、とても興味深いTLです。 JavaScriptの名前空間の汚染は神経質にならなくてはいけないポイントです。 言うまでも無いのですが、ゆるい言語なJavaScriptは型付ができないためにglobal領域に放り出された関数、変数をは容易に(思いもよらない)上書きが可能になります。 一人でコードを書いていれば注意さえすれば回避できる問題ですが、複数人がコード開発をしていたり、誰かが作成したコードを組み合わせて使わないといけないときにトラブルが起こりがちです。 jQueryとprototype.js の $() コンフリクトはよく知られてますよね。 ■名前空間を汚染しない global属性に何も存在させなければ、そもそも問題は発生しません。 一番の理想ですけど、JavaScri
昨日、はてなブックマークFirefox拡張をリリースしました。おかげさまでベータ版からダウンロード数は累積で1万ダウンロードを突破し、アクティブユーザー数も伸びています。 はてなブックマークFirefox拡張で新しいインターネットを体験しよう http://b.hatena.ne.jp/guide/firefox_addon 開発者の id:secondlife が g:subtech:id:secondlife:20090415:1239804170 で技術的な側面からのちょっとした TIPS なども紹介していますので、興味のある方はご一読ください。 検索では思いのほか SQLite の like 検索が高速なのに驚いた。はてブ検索では、検索ワードから URL, Title, コメント にマッチしたものを表示していて、それ専用の search_data だかかんらかの検索用カラムがある。
JavaScriptにおけるプライベートメンバ 翻訳 原文:Private Members in JavaScript Copyright 2001 Douglas Crockford. All Rights Reserved Wrrrldwide. JavaScriptはJavaScript: 世界で最も誤解されたプログラミング言語です。JavaScriptのオブジェクトが、プライベートなインスタンス変数およびインスタンスメソッドを持てないため情報を隠蔽する能力が欠けていると思われることがあります。しかし、これは誤解です。JavaScriptのオブジェクトは、プライベートメンバを持つことができます。その方法は以下です。 オブジェクト JavaScriptはオブジェクトを基礎としています。配列はオブジェクトです。関数もオブジェクトです。オブジェクトもオブジェクトです。それならば、オブジェク
else は上で示したように常に単独の行に書いてください。 return の後には else を使わないでください。 if (x < y) return -1; if (x > y) return 1; return 0; i++ も ++i も使用可能です。 インライン関数はそのデバッグが楽になるように名前を付けてください。関数をプロパティに代入しただけではその関数に名前を付けることはできません。次のようにしてください。 var offlineObserver = { observe: function OO_observe(aSubject, aTopic, aState) { if (aTopic == "network:offline-status-changed") setOfflineUI(aState == "offline"); } }; 名前や列挙値には interCap
jQueryプラグイン jQueryプラグインのソースを読んでいると、無名関数の先頭にセミコロン「;」を付けているのを見かけたりします。 たとえば、fancyboxとかがそうです。 ;(function($){ ..etc })(jQuery); jQueryの$関数みたいなものかな?と思いつつ、JSLintとかで文法チェックするとエラーになりますよ。 ただ、なんとなく予想はついていたので、ググってみると英語のフォーラムに書いてありました。 http://markmail.org/message/3gppon7hfmw7jqr7 ざっくり書くと、「セミコロンが先頭にあるプラグインを読み込む前に、セミコロンがちゃんと書かれていないコードがあるとバグッちゃうからつけといたよ!」ということですね。 jsでのセミコロン jsではセミコロンの自動補完という謎の機能があるため、こんな感じの残念なソース
既に多くの方が JavaScript のオブジェクト指向的側面についての解説を記事にされていますが、読み手側から見ると、例えばプログラミング言語への習熟度やオブジェクト指向自体に対する理解度がマチマチなわけで、私自身、「おお、なるほど!」 っていう、頭の中のスイッチがパチンッ!と入るような境地には達していませんでした。 かつて私も オブジェクト指向なJavaScriptプログラミングのススメ なんていう翻訳記事を書いてはいるのですが、正直なところ prototype.constructor の存在は知りませんでしたし、Function.call や Function.apply をどう使えばよいのかなどをちゃんと理解できてはいませんでした。 そんな中、2011年12月に書かれた Doc Center | Mozilla Developer Network の記事 オブジェクト指向 Java
Yslow ルールでは、スクリプトはページの最後尾、つまり </body> 直前に置け、と言っています。なぜなら、スクリプトの読み込みや実行により、他のページ要素の読み込みやレンダリングがブロックされてしまうからです。 一方、古くは IE4 の時代から Microsoft はこの問題に対処するため、defer 属性という独自の解決策を実装してきました。これは HTML 4.01、XHTML 1.0、1.1 で仕様として採用され、HTML5 にも発展する形で引き継がれています。 IE 以外のブラウザも既に対応されており、IE の独自仕様という色合いが濃かった従来と異なり、これからは広く利用されていくのではないかと思います。 下のビデオは、スクリプトの位置と defer 属性のあり/なしによる、ページの読み込み/表示速度の違いを Pagetest.com でテストしてみたもので、明らかな差異が
boilerplate とは、「再利用を意図した標準的な文例集」 だそうです。 Paul Irish が中心となり構築されてきた HTML5 Boilerplate は、その名の通り HTML5 でサイトを構築するためのテンプレート、さらにはフレームワークをも含む内容となっており、その特徴は次のように語られています。 HTML5 Boilerplate は、HTML5 を扱う上で必要な数多くの機能強化を他のベスト・プラクティスの数々と組み合わせることで、最小限の先行投資でプロジェクトの磐石な基盤を提供します。 2011年02月08日 HTML5 Boilerplate を使用して Web 開発を容易に始める | IBM developerWorks より。 HTML5 Boilerplateをベースにすることで最初からベストプラクティスが適用されたサイトやページを構築できるという特徴がある
JavaScriptのMVCフレームワークと仲間たち JavaScriptでイイ感じに開発をしたいという欲求が高まってきたため、自分でフレームワークを作らずに世界の賢者たちから学びたいと思います。今回は、JavaScriptでMVCフレームワーク等を実現しているフレームワークや周辺のライブラリ、さらにはツールやユーティリティまで幅広くご紹介します。 (2012/1/17 updated) Backbone.js Spine.js JavaScriptMVC AngularJS SproutCore Ember.js YUI App Framework Broke.js Fidel.js Sammy.js KnockoutJS eyeballs.js The M Project Knockback Batman.js Shipyard.js Agility.js ベース jQuery Doj
サーバサイド(特にNode.js)とクライアントサイド両方で動かしたいものは最近はこんな感じで書いている。 CommonJSのwiki見ててそこに紹介されてるソースコードで(どれだったか忘れたけど。。)やってたのを見ていいなーと思って真似っこした。 (function(define) { define([], function() { 'use strict'; /** * @constructor */ var SomeClass = function() { // initialize }; /** * @type {string} * @private */ SomeClass.prototype.hoge_ = 'hoge'; /** * @return {string} */ SomeClass.prototype.getHoge = function() { return th
本書は裏表紙に「中級技術者向け」と明記されている。JavaScriptの言語仕様に関して、入門したことない人や、関数型の言語に見地のない人は、パーフェクトJavaScriptやサイ本あたりで、JavaScriptの言語仕様を身につけてから、取り扱うことを推奨する。それぐらい価値のある内容に本書は仕上がっている。 そして、 正統派なTDD(テスト駆動開発)について理解したい JavaScript自身の言語的な特徴を押さえておきたい テストできるJavaScriptのコードを多く閲覧したい 実際のプロダクトに活用できるアプローチを数多く知りたい と、考えているJavaScriptを日頃から書いている人、携わっている人に、必ず読んでもらいたい1冊である。 全体を通じて、テストできるコードの特徴は何か、単体テストとテスト駆動環境の利点を享受できる優れた単体テストはどのようなものかをサンプルとともに
こういう泥臭い資料作りもやってるので、一応書き残します。 問題1. array.length へのアクセス var ary = new Array(100000); な配列があるとします。 IE6環境下で、配列の長さを求める方法を、早い順に並べてください。 TEST1. a.length; TEST2. var L = "length"; a[L]; TEST3. a["length]"; 正解は、TEST1 < TEST3 < TEST2 です。 Browser TEST1 TEST2 TEST3 総評 Chrome 1 1 1 全て同じスコア Safari 1 2 3 TEST2はTEST1の2倍, TEST3に至っては3.4倍スコアが違う Opera9.27 1 1 1 全て同じスコア Opera9.6β 1 2 2 1.3倍スコアが違う Firefox2 1 2 1 TEST1とT
著作権 この日本語訳の著作権は原文に準拠しています。 この日本語訳に対して何をどうできるかは免責事項をご覧ください。 翻訳時の覚え書き 2011-06-06 8節まで翻訳済みです。以降の節が翻訳される保証はありません。 日本語訳が正しい保証はありません。日本語訳においてECMAScript的に正しい用語を使っている保証はありません。日本語訳が不審な場合は「原文/訳文」もしくはECMA-262第5版を確認してください。また、日本語がこなれていなくて申し訳ありません。 原文のPDF全文をクリップボードにコピーしてからテキストエディタに貼り付けているためか、すべてのマイナス記号がピリオドに置き換わってしまいました。翻訳の過程で随時直してはいるものの、見逃したうえに誤訳している箇所があるかもしれません。 原文/訳文テキストは改行文字によって原文と訳文を区別しています。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く