
結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 一年ほど前に JavaScript - jQuery.Deferredを使って楽しい非同期生活を送る方法 - Qiita [キータ] という記事を書きました。 で、一年経って、ふと、「もっと分かりやすくjQuery.Deferredの便利さを説明できるんじゃないか」と思い立ってざざざっと書いてみました。 小話と言うにはちょっと長いけど。 -- jQuery.Deferredを使うと嬉しいのは、jQuery.Deferredの仕様を満たす部品同士を簡単に組み合わせることが可能だからです。中には処理を書き下すことができるとかコールバックのネストを防げるのがいいとか言う人もいますが、個人的にこっちのほうがよっぽど重要だと感じます。 例えるならレゴブロックです。レゴブロックはあの凸と凹を持ってるブロックを自由に組み合
1 pixel|サイバーエージェント公式クリエイターズブログ サイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 みなさま初めまして。 私、2011年4月に中途で入社、現在はアメーバ事業本部でピグ×スマホ×Webの開発を担当している平松 @co_sche (co-sche)と申します。 家では楽器を弾いて自力で疲れを癒すアラサー男子です。 想定している読者は、JavaScriptの基本的な構文を理解している方JavaScriptで関数を定義・使用したことのある方LLと総称される言語を扱っているが、関数型プログラミングを意識したことのない方です。 はじめに早速ですが「関数型プログラミング」という字面が長く、タイピングが辛いので所々FP(Functional Pro
2013-11-29 JavaScript の関数の中で window と undefined を定義する理由を調べてみた JavaScript jQuery などの JavaScript のライブラリのソースコードを読んでいると、このようなコーディングパターンをよく見かけます。 (function(window, undefined){ // ... })(this); これはすぐに実行される関数の中にライブラリの実装コードを閉じ込めて、関数の中で定義した変数がどこからでも参照できる変数(グローバル変数)になる問題を回避しています。これは「グローバル汚染の回避」と呼ばれています。下記のコードを見てください。 (function(window, undefined){ var foo = "foo"; console.log(foo) //=> foo })(this); console.
Creating, testing and maintaining a large JavaScript code base is not easy — especially since great resources on how to do this are hard to find. This page is a collection of the best articles, videos and presentations we've found on the topic. Follow us on Twitter, GitHub, or check out our newsletter. We'd love to hear your suggestions via e-mail or as Github Issues. We come across a lot of great
こんばんは、south37です。 最近はEffective JavaScriptを読んでるのですが、知らなかった事がポロポロ出てくるので、とても勉強になっています。これからはちょいちょい、そーやって勉強した事をまとめていけたらいいなと思います。 って事で、今日は関数定義の話をしたいと思います。 関数宣言と関数式 JavaScriptにおける関数定義には、大きく分けて3つの方法があります。 function文を使う方法(関数宣言) function演算子を使う方法(関数式) Functionコンストラクタを使う方法 1と2が一般的によく使われる方法ですね。 // 方法1 function multi(x, y) { return x * y; } // 方法2 var multi = function(x, y) { return x * y; }; // これも方法2 var multi
A collection of asynchronous patterns for nodejs and browsers. Made by Olivier Wietrich. Emitter All the projects below are based on Emitter in order to be consistent and easy to use and learn. component/emitter An implementation of the publish/subscribe pattern similar to the EventEmitter of nodejs. An emitter is really great to decouple your code. It allows you to define an action and to execute
new Date()の使い方 指定した時刻を表す日付オブジェクトを生成する。何も指定されなかった場合は現在の(デバイスに)設定されている時刻を取得する。 日時を指定するときはYYYY/MM/DD HH:mm:ssまたはそれぞれをカンマで区切った形式で取得。 var d1 = new Date('2014/04/01 12:34:56'); console.log(d1); // => Tue Apr 01 2014 12:34:56 GMT+0900 var d2 = new Date(2014, 3, 1, 12, 34, 56); console.log(d2); // => Tue Apr 01 2014 12:34:56 GMT+0900 new Date()に年を入れる new Date("2013")でその年の1月1日GMT+9時間の日付を取得する var d2 = new D
変数の使用の単純化 withの使用の禁止 strictモードではwith文が使えなくなります。代替の手段としては、オブジェクトに短い名前の変数を割り当てて、その変数を用いて対応するプロパティにアクセスすることができます。 eval内で宣言された変数のスコープ 非strictモードでは、eval("var x ;")の様に、eval関数内で定義された変数のスコープは、evalが含まれるスコープ(関数、またはグローバルスコープ)まで広がりますが、strictモードでは、eval内で定義された変数を周囲のスコープに広げません。 単純名の削除の禁止 strict モードでは delete name を構文エラーにします evalおよびargumentsの単純化 strictモードでは「eval」「arguments」という名前がキーワードとして扱われるため、これらのキーワードに対して言語構文でのバ
サイト高速化をネタにした記事は星の数ほどありますし、YSlow や PageSpeed、あるいは両方同時にチェックできる GTmetrix のおかげで、アドバイスに従って問題点を一つ一つ潰し込んでいけば、着実にスコアを「Grade A」に近づけられるようになりました。 またベスト・プラクティスなんて知らなくても、「CloudFlare 導入、一発 OK!」なんていうお手軽なサービスもあります。 一方、これら個々の Tips、テクニックを断片的に積み上げていくアプローチやブラックボックス方式では、サイト全体を通して「本当に最適なの?」という疑問も生じます。 別な言い方をすれば、「Grade A は取ったけど… その先は?」に対する処方箋が必要なんじゃないかと思っています。 そこで今回は、「スコア」だけでは見えてこない、サイト高速化の「戦略」と「戦術」の話にチャレンジしてみたいと思います。これ
タイトル、少し変えました 😉 。 第1部「サイト高速化の「戦略」と「戦術」- GradeAのその先へ」では、YSlow や PageSpeed がアドバイスする Tips のうち、HTTP リクエストの削減を優先すべしという「戦略」の話をしました。 また css や js を束ねて結合し、HTTP リクエストを削減する時の「戦術」の話もしました。 今回は、「サイトの特性に適したリソースの配置を行う」ために、「束ねたリソースをドキュメント中にどう配置するのが適切か」を見い出したいと思います。またそのポイントとなるブラウザの基本的な挙動についても言及します。 ブラウザごとの挙動が確かめられる、実験サイト contentloaded.com を立ち上げたので、以下、同サイトから幾つかの例を引きながら話を進めたいと思います。 リソース配置を決める戦術 基本的な戦術 第1部 では、css や js
It has been two weeks since my last Blog, not a way to keep your readers happy, if you have any (left). Well, I rather hope that my readers are more to the right than the left. But then, I welcome them all. There are many people who enter the Blogosphere who seem more intent on taunting the Bloggers than to learn and to comment. Foul, ugly-minded, and even beastly, but then, we can always delete t
Google Apps Script(以下、GAS)を使えば、Googleのアプリケーションにちょっとした機能を加えて実用的なサービスに仕立てられます。今回は、問い合わせフォームを簡単に作成できる「Googleフォーム」を使って、問い合わせメールへ自動で返信するシステムを作ります。 【フォーム作成】問い合わせフォームを作る Googleフォームは、問い合わせやアンケートなどのフォームを簡単な操作で作成できるWebアプリケーションです。まずは企業サイトを想定した、シンプルな問い合わせフォームを作成してみましょう。 1. https://drive.google.comにアクセスしてGoogleドライブを開きます。「作成」ボタンをクリックし、「フォーム」を選んでください。
Promise API Overview Constructor var promise = new Promise(function(resolve, reject) { /* (非同期)処理 */ }); Instance Method promise.then(onFulfilled, onRejected); promise.catch(onRejected); Static Method Promise.all() 、 Promise.resolve() などの便利メソッド系 Promiseのキホン的な流れ function asyncFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { resolve('Async Hello world'); }, 16);
Functional JavaScript(関数型言語としてのJavaScript) JavaScriptでは関数型言語の一部の機能が備わっています。 ここでは小難しい話は抜きにして、より可読性やメンテナンス性などをよくするために、 実践的なJavaScriptの関数型について考えていきます。 関数型の特徴 JSでの実装のみを知りたい場合は、 この項を飛ばして、気をつけるべきは三点へどうぞ。 関数型言語では関数でプログラムを組みます。 特徴としては 変数は再代入禁止である 関数は参照透過性が保たれている(副作用がない) があります。 しかし、前者の「変数の再代入禁止」は縛りとして強すぎるので、 JSでの実装においてはそこまで重視しません。 ただ再代入が少ない程、可読性はあがりやすいです。 後者の「参照透過性」とは、 「引数が同じであれば何回その関数を実行しても結果が変わらない」ことをいいま
dresscording.com 2019 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く