散歩に登山から普段着まで、機能性インナーについての私感 毎年、夏が近づいてくると機能製インナーの話題をネットで目にする機会が増えます。「エアリズムは汗ビショビショになる」とか「やっぱりモンベルのジオライン」「ミレーのアミアミが最強」等々。個人の経験に基づく声としてどれも間違ってないと思いますが、比較対象…

これに対して、CommonJSグループはPromiseという形でこれに答えている。これは任意の時点で、完了しているかもしれないし完了していないかもしれない、非同期に実行されるアクションの結果を表現したオブジェクトとのインターフェイスを提供する。この方法では、さまざまなコンポーネントが非同期アクションのためのpromiseを返すことができ、コンシューマは予測可能な形でそのpromiseを利用できる。また、Promiseは非同期性を支援するために構文上便利な言語レベル拡張のために利用される基本エンティティを提供することもできる。 Stratified JavaScriptはこれとは別のアプローチをとっており、JavaScript言語のスーパーセットを提供することで、この問題を解決している。しかし、使う言語を切り替えられないのなら、とるべき道はシーケンシャルなコードをエミュレート可能な、柔軟なA
例えば、img要素にウェブ上の画像を読み込んで、完了後に何らかの処理を行う必要があったとします。その際、 var image = document.createElement("img"); image.src = "http://www.example.com/foo.png"; image.onload = function() {alert("Loading has finished!");}; var image = document.createElement("img"); image.onload = function() {alert("Loading has finished!");}; image.src = "http://www.example.com/foo.png"; の両者を比べて、どちらが正しいと思いますか? 蛇足ですが、2行目と3行目が入れ替わっているだけ
The Closure Library makes use of the pseudoclassical inheritance pattern, which is particularly compelling when used with the Closure Compiler. Those of you who have read JavaScript: The Good Parts by Douglas Crockford may use the functional pattern for inheritance that he espouses. Crockford appears to object to the pseudoclassical pattern because: "There is no privacy; all properties are public.
JavaScriptの"this"って難しいですよね。理解しないまま使ってると、思わぬところでグローバルオブジェクトを指していたり、そもそもvarでプライベートな変数にすべきところにもthisを使っていたり…。私もthisには散々悩まされてきたので、そろそろ完璧に理解しようと思い、以下の記事をまとめてみました。間違いを見つけたら指摘して頂けるとありがたいです。なお、文中の引用文章は読みやすさを考慮して適宜改行、強調を行っています。 thisとは何か。 まずは仕様書を見てみましょう。 ECMA-262 3rd 11.1.1 The this Keyword The this keyword evaluates to the this value of the execution context. ECMA-262 5th 11.1.1 The this Keyword The this k
結構前に公開していたんですが、きちんとした紹介を書いてなかったので改めて。Githubにて、T.jsという名前のJavaScript用テンプレートエンジンを公開しています。 T.js - DOMBuilder-like template engine for JavaScript T.jsとは JavaScriptでHTMLを書くためのライブラリ(一種のテンプレートエンジン)です。 T.table("#addressbook")({style:{borderCollapse:"collapse"},border:"5"}, T.thead( T.tr( T.th("name"), T.th("address"))), T.tbody( T.tr(".odd")( T.td("alice"), T.td("a street")), T.tr( T.td("bob"), T.td("b str
JSONの発見者でJavScript界の重鎮であるYahoo!のダグラス・クロックフォード(Douglas Crockford)氏。米オライリーが主催するイベント「Velocity 2011」で、セッション「JavaScript & Metaperformance」を行いました。 いまWebブラウザ間でJavaScriptエンジンの性能競争が行われていますが、その影響とこの先の展望について語っています。JavaScriptプログラマなら必見の内容を、公開されたビデオを基に紹介しましょう。 JavaScript & Metaperformance これから、JavaScriptと性能についての本当の話をしよう。 JavaScriptはみなさんご存じかな? いまや世界で最もポピュラーになったプログラミング言語だ。 JavaScriptは、Javaからシンタックスを、Schemeからファーストク
昨日,やきとんオフに参加したところ,mizchi や ymrl に「頭おかしい…」と言われたので,ちゃんと解説します. 0. サンプルコード これをコピーして,ブラウザのアドレスバーに javascript: と先頭につけてペーストして実行してみましょう. _=-~-~-~[];__=[][(![]+[])[_-_]+([][[]]+[])[_+_-_/_]+(![]+[])[_-_/_]+(!![]+[])[_-_]+(!![]+[])[_]+(!![]+[])[_/_]]+[];___=__[_]+__[_+_]+__[_-_/_]+(![]+[])[_]+(!![]+[])[_-_]+(!![]+[])[_/_]+(!![]+[])[_-_/_]+__[_]+(!![]+[])[_-_]+__[_+_]+(!![]+[])[_/_];___[___][___]((![]+[])[_/
数値(num)から4桁のゼロ埋めされた16進文字列が欲しい場合に var num = 123; var rv = ("000" + num.toString(16)).slice(-4); alert( rv ); // "007b" と毎回書くのもアレなので、こんな感じに書けるといいんじゃないでしょうか。 alert( (123).toHexString(4) ); // "007b" 実装してみました。 //{@prototype (function(_DEC2HEX) { // create HEX2 cache for (var i = 0x100; i < 0x200; ++i) { _DEC2HEX[i - 0x100] = i.toString(16).slice(-2); } Number.prototype.toHexString = function(n) { // @
var frame = document.createDocumentFragment(); for(var i = 0; i <= 255; i++) { var div = document.createElement('div'); div.style.width = '100px'; div.style.height = '1px'; div.style.backgroundColor = 'rgb('+i+','+i+','+i+')'; frame.appendChild(div); } document.body.appendChild(frame); これだと体感的には違いが分からないかも。でも1つ1つ挿入するよりかレンダリングはスムーズだよね。そういえば以前500個ぐらいのdivつめたときもさっとしてたな。その場合canvas使えば良かっただけだけど。 詳しくはこっち。つ
[ajax][javascript][はてブ] はてブの「ブックマークの確認」ページは、IEでメモリリークする! IE のメモリリーク調べる為の「Drip」ってツールが ここにあって、 このツールは単純にリークしそうなコードチェックしたり、 オートリロードして、外部から参照したメモリ使用量を記録してくれるだけなんだが はてブの追加ページで確認するとこんな感じになる。 (オートリロードなんで負荷高くなるから、悪用したり、やりすぎたりしないようにw) タスクマネージャー等の、外部から参照したメモリが増えているからといっても OSがアプリケーション用にキャッシュしているメモリが増加しているだけの 可能性があるから、一概に鵜呑みはできないんだが 平均して1回のリロードに 1M 近く増えていくとかおかしい。 (MicroSoft もタスクマネージャーで確認しろっつってるし) IE単独だと、閉じた時点
スマートフォンを含む最近のブラウザでは、戻るボタンで前のページに戻った際に、JavaScriptも含めて前回の最後の状態を復元します(Back Forward Cacheと呼ばれます)。これはとても便利なのですが、ページを作成する立場からすれば、余計なお世話であることもあります。 Back Forward Cacheの無効化はとても簡単に実現できます。ページの中にonunloadを書くだけです。 <!DOCTYPE html> <html><head><title>onunload test</title> <script> window.onunload = function() {}; window.onload = function() { var count = 0; var loop = function() { document.getElementById("num").in
最近、徳丸本をじわじわ読んでいるのですが、DOM based XSSの話が書いてあったので、少し言及しておこうと思います。 徳丸本から引用 DOM based XSSと呼ばれるXSSがあります。これは、JavaScriptによりクライアント側で表示処理する箇所があり、そこに脆弱性がある場合のXSSです。 サンプル書いてみました。 <script> document.write(unescape(location.href)); </script> こいつを適当なファイル名で保存して、domxss.html#<script>alert("hello")<script>などのURLでアクセスするとalertが表示されるはずです。任意のスクリプトが実行可能な状態ってことですね。任意のスクリプトが実行可能ってことは、セッションクッキー盗み放題で、他人に成り済まして買い物できちゃったりするレベルです
■in演算子の仕様 まずはin演算子の動作を知る。 Special Operators - MDC Docs オブジェクトが指定されたプロパティ(prototypeチェーンを辿って)を持っているかの真偽値を返す 要はhasOwnPropertyとほとんど同じで、違いはprototypeチェーンを辿るかどうか。 in 演算子と obj.hasOwnProperty()の比較は以下を参照 in 演算子と obj.hasOwnProperty() はどちらが早い!? - hogehoge @teramako 次は仕様書を見てみましょう。 ES3の仕様書:11.8.7 in 演算子 (The in operator) RelationalExpression を評価。 GetValue(Result(1)) を呼出す。 ShiftExpression を評価。 GetValue(Res
This example shows how to create a simple multiuser drawing pad (aka shared whiteboard, multiuser sketchpad, or collaborative painting tool) using pure JavaScript and HTML5's <canvas> tag. The drawing pad updates in realtime when any connected user draws a line. Here's UnionDraw. Have a scribble! [View source] To manage communication between users, the JavaScript code uses OrbiterMicro, which conn
JavaScriptでは初期化されていない変数には全て「undefined」という値が入っています。 var a; alert(a); //undefinedが入っている これを利用して、変数が定義済みかどうかを判別することが可能です。…が、やり方がいろいろあるみたいなので、まとめてみることにします。 undefinedと比較する if (a === undefined) { alert("aは未定義"); } グローバル変数として、そのまんまundefinedという名前の変数が用意されているので、それと比較するやり方。一番素直な方法ですが、JavaScriptにおいては良くない書き方とされています。 undefinedは予約語ではなく、単なる変数です。だから上書きすることができるし、関数スコープ内で同名のローカル変数を作ることもできます。(ただし最近の処理系ではconst扱いになって上書
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く