2013-06-01から1ヶ月間の記事一覧

SpiderMonkey Regrets

Is the most implemented ECMAScript.next specs SpiderMonkey as known as Firefox's JavaScript engine ?Yes, indeed many of implementaions are available. I was watching and blogging the improvement. But some of things are launched for a long t…

Firefox 25 で Array.prototype.{find, findIndex} が実装された

[].indexOf に似ているけど、より汎用的なメソッドforEach, map, some, every 等と同様にコールバックを引数にとって、true を返したものの、値またはindex値を返すメソッドである。実装見たほうが分かりやすいかも。(ちょっと特殊だけどJavaScriptで書かれ…

Firefox 22 個人的まとめ

WebPlatform 系 time 要素の実装 (Bug 629801) data 要素の実装 (Bug 839371) input[range] 要素の実装 (Bug 841948) [WebComponents] document.register の実装 (Bug 783129 about:config から dom.webcomponents.enabled を true にする必要あり FormData …

ArrowFunction 的即時関数

ある意味、ソーシャルボタンのJavaScriptでfunctionの前に「!」がついている理由の続き。今回は ECMAScript 6th から入る ArrowFunction で即時関数を考える巻。前回は普通の関数式での即時関数を解説してみた。 functionには2種類ある いきなり function …

ソーシャルボタンのJavaScriptでfunctionの前に「!」がついている理由

結論から言うと、単なる格好付けです。以下説明。主要なJavaScript (ECMAScript 5th)では、functionは2種類あります。 文(Statement) *1 式(Expression) です。所謂、「即時関数」と呼ばれるものはfunctionは式(Expression)である必要があります。何故なら、…

要素リストをループで回して addEventListener するみたいな、よくあるサンプルを断罪してみる

function setButtonHandler () { var buttons = document.querySelectorAll(".hogeButton"); for (var i = 0, len = buttons.length; i < len; ++i) { (function(n) { buttons[i].addEventListener("click", function() { alert(n); }); }(i)); } } って感じ…

Firefox 24(Nightly) で DOM Future が実装された

856410 - Implement promises DOM Future ではなく、すでに、Promise に名前が変わっているけど、実装されたのは Future 。 This feature used to be called futures. 4 Promise - DOM Standard テストコード: mozilla-central mozilla/dom/future/tests/tes…

hidden 属性

要素の表示/非表示をトグルするベストプラクティス - hogehoge コメント欄にて id:Syoichi さんに hidden 属性の存在を教えてもらった。 IEではまだ実装されておらず、マークアップ上の意味を考慮する必要もありますが、将来的にはhidden属性も選択肢の一つ…

要素の表示/非表示をトグルするベストプラクティス

[JavaScript] tr要素 の display プロパティを用いた表示切替えについて | Blog | Development Reference を読んで、display = "block" はアカンやろ、と思ったので書いておく。 <div id="foo"> <p>FOO</p> </div> div#foo を JavaScript から表示/非表示をするには。 ダメパターン func…

Note 的な aside 要素をネガティブマージンを使わずに

こんな感じの、NOTE部分は ::before 等のCSSで書き、回り込みなしのブロックを作るやり方を模索してた。 ネガティブマージン まぁ楽ではある aside.note { padding-left: 6em; } aside.note::before { content: "NOTE"; margin-left: -5em; float: left; } <aside class="note"> <p></p></aside>…

Firefoxのアクセスキー

備忘録 <button accesskey="F">hoge</button> にどうやってキーボードをアクセスするか。about:config から設定可能であり、デフォルト値が OS によって異なる。キーとなるのは ui.key.generalAccessKey ui.key.contentAccess ui.key.chromeAccess ui.key.generalAcessKey OSに関係なく、デ…

Firefox 24(Nightly) で {Array,Map,Set}.prototype.{keys,values,entries} メソッド等が実装された

869996 – Set.prototype.{keys, values, entries} 875433 – iterator methods of [Array, Map, Set].prototype should be same function object as entries/values Array.prototype values() Map.prototype keys() values() entries() Set.prototype keys() …

問題:どれが「クロージャ」でしょうか?

func1 から func10 までのどれが「クロージャ」でしょうか? var scope = "global"; function func1 () { return scope; } var func2 = function () { return scope; }; var func3 = new Function("return scope;"); function foo () { var scope = "functio…

回答:どれが「クロージャ」でしょうか?

問題:どれが「クロージャ」でしょうか? - hogehoge の回答期待させて申し訳ないですが、はっきりとした解等を定めていません。ということで解答ではなく、回答で。クロージャの定義を以下の様に定めました。 引数以外の変数を実行時の環境ではなく、自身が…