この文章は、 Dmitry A. Soshnikov さんの、 ECMAScript に関する優れた記事 "JavaScript. The Core." を許可を得て翻訳したものです。世の中に、 JavaScript のブラウザ API や、実装系に関する記事は多々あれど、 ECMAScript の仕様に則って、ここまで詳しく説明してくれている記事は殆ど無いと思います。今回は翻訳できておりませんが、文中で参照されている Dmitry さんの ES3 シリーズも、読み応えのある( ECMAScript3 の仕様の副読本としても読める)素晴らしい内容ですので、是非チャレンジしてみてください!(ご要望があれば訳します翻訳許可を頂いたので、この記事内で参照されている章から逐次翻訳を進めます!)。 ちなみに Dmitry さんは、計算機科学や数学にも明るい方でらっしゃいます。が、私は違います。極力
IEとFireFoxでのJavaScript(と言うか主にDOMまわり)の挙動の違いに関するメモ書き 1.ウィンドウ/ドキュメント関連 1.1 ドキュメントの幅,高さの取得 IE6 document.body.scrollWidth document.body.scrollHeight NN6,FireFox document.width document.height FireFox12ではdocument.width,heightはundefinedになる。 https://dev.mozilla.jp/2011/06/firefox6-backward-compatibility/ によると、このプロパティは標準化されなかったので、FireFox6以降で削除された模様。 かわりに、以下のようにしてサイズを取得できる。 parseInt(window.getComputedStyle(
Three.jsはJavaScriptのオープンソース・ソフトウェア。Webブラウザが高機能化していく中で競われているのがJavaScriptエンジンの性能だ。実行速度が向上することによって、Webアプリケーションなどの利用が促進される。HTMLレンダリング性能と合わせて重要な指針だ。 マウスの動きを追従する エンジンが高機能化すれば実現できる幅が広がる。その一つが3Dレンダリングだ。JavaScriptで3Dオブジェクトが表現できるようになれば、ゲームはもちろん様々な分野で活用できるだろう。そのレンダリングエンジンとしてThree.jsを紹介しよう。 Three.jsは3Dオブジェクトをレンダリングするライブラリで、先日話題になったGoogleマップを使ったマッシュアップ「The Wilderness Downtown」もこのThree.jsを使って作られた一つだ。さらにマウスで反応する
Lettering.jsはJavaScript製のフリーウェア(ライセンスはWTFPL)。Web2.0という単語が出回ったことに流行ったのがFlickrのロゴ風の画像を生成するジェネレータだ。透明感があって、ポップなデザインに見え、かつクールなロゴがたくさん(この時点でクールじゃなくなった)出回った。 今時代はJavaScript全盛だ。文字を画像化しても面白くない。文字をJavaScriptを使って装飾する、そんなロゴは今後流行るかもしれない。その可能性を感じさせるのがLettering.jsだ。 Lettering.jsを適用した文字は見ればすぐに分かる。あざやかな色合いで、ポップで可愛らしい文字になる。テキストなので画像に比べると軽量なのも利点だ。画像のように作成し直す手間もなく、システムと連携させるのも容易だ。 さらにマウスオーバーによるアクション設定ができるのも大きい。各文字はマ
最近JavaScriptを個人的に勉強しているんですが、そんなJS初心者ながら色々試すなかで気が付いた開発とかTDDとかについて色々思うところをアウトプットしてみようかと思います。 一番多いのは、ClientSideJSで、使ってるのはjQueryとQunitが中心でした。 でもこれからは別のフレームワークや、ServerSideJSなんかも出てきますし、 今読んでる本が終わったら、こっちの本も見てみたいと思っているので、 Test-Driven JavaScript Development: Safari Books Online その前にこれを書いておこうという目的です。自分に付ける一つのTagという感じです。 あまり一貫性に拘らず、垂れ流したいと思います。 Ajax と API 以前こんな記事を書いたように、サーバ側がAPIでデータを提供し、ロジックをクライアント側に固めるタイプの開
JSON Editor by katamari http://jsoneditor.net/ 昨日、紹介した「JSONLint」の事をtwitterで話したら、自分はこれを2年前から使ってると「JSON Editor」というのを紹介して貰いました。 早速、どんなものかと見てみたら凄いですねコレ、表示はツリー表示に成ってデータの有る所をクリックするとその場で編集出来ちゃいます。ショートカットキーも充実しています。 JSONはもちろん、XMLでも出力出来ちゃいます。 調べてみたところ2年前から有るツールで作者は日本人の方みたいです。 JSON Editor 公開しました - pm11op のブログ http://pm.11op.net/2008/05/json-editor.php これは超便利ですね。これから積極的に使って行こうと思います。 ちなみにAIR版も有るみたいです。 RESTful
2012/07/22 追記 久しぶりに確認したところ、IE9 では以下で指摘している IE (このときは IE6 でした) の問題(3, 4, 6)がすべて解消されていました。 また、Firefox での問題(5)も Firefox14 で試したらは解消されていました(ただ、All-in-One Sidebar のパネルの上では mousemove イベントが発生しないようでした)。 Chrome20 や Safari5 でも問題無く動作していますから、現在においてドラッグ&ドロップを実装するには mousedown 時の preventDefault() だけでOKと言えそうです。すばらしいですね! safari で動かないらしいのでどなたか情報ください!(くやしい!) というかこういうのに勝ち負けはないので実装できてる方は是非トラックバックお願いします。当方既に ipod 中毒ですし
The WebKit Open Source Project ChromeやSafariのエンジンであるWebKitの開発版にHTML5のscript要素での策定が進められているasyncとdefer属性の実装が追加された。Running scripts in WebKit - Surfin’ Safariにその旨が記載されているとともに、asyncやdeferを指定した場合にどういった動作が実施されるのかと、デモンストレーションの結果が紹介されている。asyncとdeferの効果を知るサンプルとして参考になる。 ブラウザが次のような外部のJavaScriptファイルを指定したscript要素に到達すると、そこでパース処理を一旦停止し、指定されているJavaScriptファイルのダウンロードを実行する。ダウンロードが完了したらパース処理を実施し、ふたたびHTMLのパースを再開する。ダウンロ
なぜ通常のXMLHttpRequestにはクロスドメイン制約があるのに、JSONPではクロスドメインでリクエストを送信できるのか?不思議に感じたので、ちょっと調べてみた。 クロスドメイン制約は「ブラウザ上で実行されるJavaScriptは同じドメインにしかリクエストの送信やクッキーの編集を行えない」という制限である。 なぜこのような制限が必要になるのか。クロスドメイン制約がなかったらどうなるかを思考実験してみよう。ブラウザ上では、いくつものサイトからダウンロードしてきたJavaScriptが同時に実行されることは珍しくない。また、悪意のあるページにアクセスしてしまい、悪意あるJavaScriptを実行してしまうことも、十分に起こり得る話である。間違えて変なページにアクセスしたら致命的な問題が起きました、ではまずいので、ブラウザではJavaScriptができる事にかなりの制限を与えている。X
NodifyはJavaScript製のオープンソース・ソフトウェア。最近、サーバサイドのJavaScriptフレームワークであるNodeJSが熱い。多数のソフトウェア、ライブラリが開発されており、Herokuでもサポートが開始されるなど本格的になってきている。 NodeJSを遊ぶのにぴったり そんなNodeJSを使って色々遊んでいる人たちに使ってみてもらいたいのがNodifyだ。Webブラウザ上でNodeJS向けのコードを書き、その場でテスト実行できるいわばIDEだ、 Nodifyを立ち上げるとWebブラウザが表示される。後は自由にコードを書き、その場で実行できる。NodeJSのサーバをNodify上から立ち上げることも可能だ。console.logを使えばデバッグメッセージを出力することもできる。Google Chromeを使えばデバッグも可能だ。 Nodify上からNodeJSを実行で
npmはJavaScript製のオープンソース・ソフトウェア。サーバサイドJavaScriptで有力な選択肢になりつつあるNodeJS。この手のフレームワークが流行るか否かはフレームワークの性能はもとより、周囲のコンテンツによって左右される。 例えばフレームワークに関するドキュメントであったり、支持するユーザ層、さらに充実したライブラリも重要な要素だ。NodeJSにもそれが登場した。パッケージ管理システムを提供するnpmだ。 npmはrpmライクな名称のNodeJS用パッケージ管理システムだ。コマンド一つでNodeJSに関係する様々なライブラリをインストールできる。既に多数のライブラリが登録されている。npm自体のインストールもコマンドライン一行で済んでしまう手軽さだ。 npmコマンド自体がroot権限を必要としているのが難点ではある(筆者環境だけだろうか)。だが、それ以上に便利だ。npm
はじめに 2010 年 9 月 15 日を持ちまして、サイボウズ・ラボを退職いたしたました。 報告も兼ねて、久しぶりにブログを書いてみたいと思います。 (写真はゆうすけべーさんです) この会社に入って、たくさんの学びと思い出がありました。 その一つ一つをまとめていければ、素晴らしい記事になるのかもしれませんが、僕は文章が苦手です。 ですので、うまく退職のエントリを書き上げることができません。 言葉にできない。そんな感じです。 なので、このエントリはサイボウズ・ラボやサイボウズ本社の仲間たちへのありがとうの気持ちをこめて、自分らしく最後まで JavaScript のことを書きたいと思います。 サイボウズでの最後の仕事 僕にとって、サイボウズでの最後の仕事は「JavaScript で新しいユーザーインタフェースを作ること」でした。 そして、その中で始めて複数人による大規模な JavaScrip
JavaScript で作って意味があるのかどうか分かりませんが、作ってみました。 応用編 入力したテキストをページ上に書き出し、個々の文字をドラッグ&ドロップ で動かせるようにする ソースを読んでも中身が分からない HTML を作成する パスワードチェックの部屋 (パスワードは「開けごま」ですが、HTML のソースや JavaScript を解析しても、絶対にパスワードが分からない仕組みになっています。) バー ライブラリ編 こんなの JavaScript で作るかよってな代物です。 できてしまったものはしょうがないでしょう。 utf.js (UTF-8 <-> UTF16 変換) base64.js (Base64 encode/decode) md5.js (MD5) des.js (DES 暗号化/復号化) zlib.js (JavaScript による zlib 実装、zlib
V8 JavaScript を用いたイベント駆動I/Oの実現 全てのリクエストに対して"Hello World"と返答するNodeで書かれたWEBサーバの例です。 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8124, "127.0.0.1"); console.log('Server running at http://127.0.0.1:8124/'); このサーバを走らせるには、コードを example.jsというファイル名で保存し、下記のように nodeコマンドを実行してください。 % node example.js
JavaScript。「ジャヴァスクリプト」と読みます。主にWebページに動きを与えるものです。 現在では結構多くのページに使われていますが、その多くはとてもレベルが低く不適切なものです。もっと質の高いJavaScriptを使える人が増えるといいなという思いから、このページを作りました。 初級者の基礎知識 本文を理解するにはJavaScriptの知識がそれなりに要るので、JavaScriptがそもそもあまり分からない人は、この辺を読んでみましょう。 基礎第一回 基礎第二回 基礎第三回 基礎第四回 基礎第五回 基礎第六回 第一章 オブジェクト オブジェクトとは オブジェクトの実体 配列のコピー オブジェクトと関数 第二章 DOMの基礎 HTMLと木構造 DOMとは 基本的な操作とテキストノード 木構造の操作:ノードの除去 木構造の操作:ノードの追加 木構造の操作:さまざまな機能 木構造の操作
Doctor JS is a genius. He'll analyze your JavaScript code, complete with polymorphism, prototypes, exceptions and callbacks. Mozilla Labsから実験的な新サービスDoctor JSが公開された。Doctor JSはJavaScriptのソースコードを静的に分析して型推論の結果を表示するサービス。任意のJavaScriptソースコードを分析して、変数やまたは関数の返り値などの型を示してくれる。JavaScriptではプログラミングの段階では厳密な型付けを要求されない。Doctor JSを使うとどの変数がどの型に対応するかを実装段階でチェックできる。ベースとなっているのはDimitris Vardoulakis氏らが開発したCFA2と呼ばれる関数言語向けのフロー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く