(2015/10/21追記) 記事を書いてから半年経ちましたが、最近はRxの良さを理解したり、ES7のasync/awaitがbabelによって実用的になりつつあったり等、またもやベストプラクティスとはなんだったのか状態です。とはいえ、いまのところPromiseは非同期処理の土台であり続けそうですし、Generatorもasync/awaitへの足がかりとして知っておくことのメリットは大きいかと思いますので、引き続き公開させたままとさせて頂きます。 (追記ここまで) 数ある非同期処理のプラクティスを試してみて、だいたいこれが良いんじゃないかというパターンが固まったので書きます。効用はコールバック地獄からの脱出と結局非同期どれが良いの感の払拭。ES6寄りです。 前提知識 JavaScript Promiseの本 http://azu.github.io/promises-book/ ジェネレ
2月8 6to5 に末尾呼び出し最適化が実装されたので調べてみた @azu_re さんのツイートで知ったのですが、6to5 に末尾呼び出し最適化が追加されました。 Added complete TCO (tail call optimization). by RReverser · Pull Request #714 · 6to5/6to5 · GitHub ECMAScript 6 compatibility table によると ES6 transpiler では初めてテストを通った実装のようです。 6to5 ではどのような ECMA−262 5th のコードに変換して実現しているのか気になったので調査してみました。 末尾呼び出し最適化って何? その前に「末尾呼び出し最適化って何?」って人のために簡単に説明しておきます。 通常、再帰するようなコードを書くとこんな感じになります。 fun
こんにちは丸山@h13i32maruです。 ES6のGeneratorを勉強する題材としてasync/awaitを実装してみたので、そのメモです。 Genratorとは ES6のGeneratorとは「任意の時点で処理を中断/再開することができる関数」というもの。一般的にはコルーチン(coroutine)と呼ばれるもので、サブルーチン(通常の関数)を一般化したもの。ES6でGeneratorを理解するには3つのキーワードがある。 Generator Function 処理の中断/再開が行われる特殊な関数 function* generatorFunction(){}のようにfunction*を使って定義する Generator Object 中断された処理を再開したり、値を取得し対するオブジェクト var generatorObject = generatorFunction()のように取
V8にES6テンプレートリテラルが入ったらしいということで、 テンプレートリテラルが実装された - JS.next 先に入っているFirefox 34(現beta)で遊んでみた。 埋め込み変数は即時評価 埋め込み変数は即時評価なので、テンプレートリテラルが評価される時点で定義されない変数を埋め込みに使うとエラーになってしまう。 var name = 'Taro'; console.log(`Hello, ${name}.`); // 'Hello, Taro.' console.log(`Hello, ${hoge}.`); // ReferenceError: hoge is not defined' そうすると、Viewクラスのプロパティにテンプレートを持っていて任意のタイミングで呼ぶみたいなことができず、同じテンプレートでも使うところで毎回リテラルを書く必要がある*1。 // Vie
This posts looks beyond everyday usage of JavaScript’s objects. The fundamentals of JavaScripts objects are for the most part about as simple as using JSON notation. However, JavaScript also provides sophisticated tools to create objects in interesting and useful ways, many of which are now available in the latest versions of modern browsers. The last two topics I talk about, Proxy and Symbol, are
block scope bindings block scope bindings let const block functions? TypeScript → 検討中 #19 個人的にはかなり欲しい。頑張れば arrow function expression のようにpolyfill的な実装を吐けると思うので、それやってほしいなぁ…。 Traceurちっくなことをつい求めたくなってしまうけど多分TypeScriptチームはそこはあんまし頑張る気がないと思う。 ていうか block functions ってなんなんじゃろ。 destructuring destructuring refutable matching これ現在のドラフトに入ってないよね? 分割代入のこと。CoffeeScriptで昔から使えるので知ってる人も多いと思う。 脱構造とかダサい訳をあてられてることもある気がする
概要 ES2015を象徴する機能である、アロー関数構文の実装がついにV8で始まった。 無名関数を短く書ける [3.28.31] アロー関数は無名関数の省略記法である。 今までこう書いていたのが、 var fn = function (a, b) { } こうスッキリ書ける。 var fn = (a, b) => { } 「=>」が矢のように見えることから「アロー」関数と言う。 更に短くできる これが、 [1, 2, 3].map( function (v) { return v * v } ) // [1, 4, 9] アロー関数だとこうなるが、 [1, 2, 3].map( (v) => { return v * v } ) // [1, 4, 9] 引数が一つの時には「()」を省略できるので、こう書ける。 [1, 2, 3].map( v => { return v * v } )
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く