We are all familiar with writing JS using callbacks, events, 'lifecycle' methods, and maybe even Promises and Streams. These are useful and familiar pat…

JavaScriptにおける関数の定義はシンプルだが 実際にコーディングに取り組んでみると 思わぬ不具合に悩まされることもある よくある誤りを避けるヒントを4つ紹介する はーいよろしくです return命令は途中で改行しない JavaScriptでは「基本的に」セミコロンで文末を認識する ただしセミコロンを省略した場合にも 適宜、前後の文脈から分の末尾を判断する つまりJavaScriptでは文末に セミコロンを付けることが好ましいが「必須ではない」 このような寛容さは 基本的にJavaScriptのハードルを下げる要因になるものだが 時として要らぬ混乱をもたらす原因にもなる var triangle = function(base, height) { return base * height / 2; } document.writeln('三角形の面積:' + triangle(5,
Promises provide a consistent way to write asynchronous code in JavaScript by abstracting callbacks into objects. Some key benefits of promises include: handling errors through rejection instead of nested callbacks, ability to chain operations together through promise methods like .then(), and restoring synchronous-like control flow. The document discusses how promises improve on traditional callb
相変わらず仕事ではデザインやりつつJavaScript書いている。 タスクランナーとしてGrunt.jsを使っていたけれども、使ううちに段々不満がでてきた。遅かったり、記述が冗長になりがちでつらかったので最近になってgulpに乗り換えた。 gulpは良い。タスクは自動的に並列に実行され、かつストリームで処理されるので速いし、タスクの記述もストリームベースの書き方のおかげでGrunt.jsに比べるとだいぶ短くなる。 ただ、そこらにあるgulpをちょっと試しただけの日本語の記事やドキュメントをみてても実際のプロジェクトで使えるレベルまでの知識を得られず学習に一日かかった。 この記事では、gulpをまともに使えるようになるまでに必要な知識を書く。 導入とHelloWorld まずは導入。npmからgulpをインストールする。 $ npm install gulp -g $ gulp -v [gu
最近、気になったJavaScript AST関係のものについてのメモです。 JavaScript ASTについては以下などを見て下さい。 カジュアルJavaScript AST JavaScript AST Walker esnext 元々ES6 Module Transpiler等やっていたSquare社がesnextというプロジェクトを立ち上げました。 esnextはTraceurと同様にES6のコードを今日のJavaScriptに変換するツールです。 @eventualbuddhaさんがメインでやっていて、それぞれのシンタックスの変換はes6-spreadのように、ひとつのモジュールとして分けて作られています。 また変換の書き方も大体統一したやり方(まあ一人で大体書かれてるので)が取られていて、 Facebookの@benjamnさんが作っているast-typesとrecastを使っ
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
JSZip is a javascript library for creating, reading and editing .zip files, with a lovely and simple API. Current version : v3.10.1 License : JSZip is dual-licensed. You may use it under the MIT license or the GPLv3 license. See LICENSE.markdown. Example var zip = new JSZip(); zip.file("Hello.txt", "Hello World\n"); var img = zip.folder("images"); img.file("smile.gif", imgData, {base64: true}); zi
プログラマとして Symfony 歴は 2 年くらい(フルタイムではない) Symfony1 時代はほぼ知らない Java, Ruby, JavaScript, elisp, PHP github 上では JavaScript プログラマ? 代表作は power-assert Why Symfony? なぜ Symfony を選んだか 「コードがしっかりしている」 メンテ方針がしっかりしている(長期サポート, 後方互換性) DIベースの疎結合設計で自分でアーキテクチャを進化させやすい 中長期的な生産性が高まることを期待できる
You've probably heard the talk around the water cooler about how promises are the future. All of the cool kids are using them, but you don't see what makes them so special. Can't you just use a callback? What's the big deal? In this article, we'll look at what promises are and how you can use them to write better JavaScript. Promises are Easier to Read Let's say we want to grab some data from the
AngularJSを利用したのなら、絶対にKarmaとか Protractorを活用すべきです。ちゅうか、活用しなさい。と言いたいです。システムを保守フェーズに安定的にメンテナンスするならそう考えるのがふつうになるべき。 (※Protractorについては、こちらの記事がとても参考になります) 例によって「Mastering web application development with AngularJS」を読んで書かれていたポイントを読んだ感想をこちらにまとめてますが、 2章のテスト解説部分に下記の文章があります。 There is a quote saying that writing code without a Version Control system (VCS) is like skydiving without a parachute. Today one would
Pex(https://github.com/PexJS/PexJS)がオープンソースになりました。 前身のExGameの時代から @tkihiraと一緒にずっと開発してきたプロダクトなので、大変感慨深いです。今はプロジェクトを離れ別なプロダクトの仕事をしているのですが、まだ私の書いたコードが多少残っているようです(糞コードがあれば何割かぐらいの確率で私の責任です)。 出力されるpex.jsは約9000行で、一人で全体を把握できる規模のプロダクトだと思います。しかし、クラス名がなかなか独特だったりして、初見では全体像がなかなか掴みづらいと思いますので、簡単に全体の構成を解説してみたいと思います。 前提知識 最低限、SWFファイルのバイナリフォーマットを理解していることが必要です。知らない方は、こちら http://labs.gree.jp/blog/2011/01/2353/ の「SWFバ
物理法則にしたがったオブジェクトのアニメーションをスクリプティングするとき、数学の「微分」の考え方で捉えられると応用の幅が広がります。微分と聞くと難しそうに響きます。けれど、大雑把にいってしまえば、オブジェクトの動きについて変化を見るということです。アニメーションがつぎのフレームでどう変わるかを考える、といってもよいでしょう。 01 等速直線運動 決まった速さで同じ向きに動き続ける「等速直線運動」なら、つぎのフレームに移るたびにオブジェクトの位置(xy座標)に定数を足します。この定数(xy平面で捉えるならベクトル)が速度です。つぎのフレームにおけるオブジェクトの位置は、今の位置に速度を加えて求めます。 位置 += 速度 時間(t)と位置(x)をそれぞれ横軸と縦軸にした等速直線運動のグラフは、下図001のように一次関数(x = vt + x0)で表されます(「直線の式(方程式)」参照)。一次
1 pixel|サイバーエージェント公式クリエイターズブログ サイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 みなさんこんにちは。アメーバ事業本部の泉水(@1000ch)です。 今日はHTMLをコンポーネント化するWeb Componentsという新しいHTMLの仕様と、 その機能を補完するPolymerというライブラリについてお話させていただきます。 Web Components Web Componentsについては、2013年のHTML5 ConferenceでGoogleの夷藤さんがセッションされていました。夷藤さんはChromeチームで、Web Componentの周りの実装をされていたり、Shadow DOMの仕様の編集をされています。 セッショ
DevTools、使ってますか? もはやChromeじゃないと開発できないくらいに飼い慣らされています。 ブレークポイントやconsole.logなど基本的な使い方から、TimelineとAuditsを使ってのパフォーマンス計測などなど、DevToolsのポテンシャルは計り知れません。 個人的にはConsole APIが好きなんですが、今回はConsoleパネルで使える Command Line API の使い方についてまとめてみました。 $_ $_には最後に評価した式の結果が保存されています。 Console上で計算を行なった場合や、$セレクタなどでDOMを検索した結果など、最後の結果が常に保存されます。 $0 〜 $4 $0から$4にはElementsパネルで選択した要素が5つ保存されています。$0が最後に選択した要素で数字が増えるごとに過去に選択した要素になります。 $0は特に使いや
昨日は 葉桜js でした。 今回は客層からかテストとセキュリティの話が多かった。t_wada, malaさんの影響は大きい。 #葉桜JS— Yosuke FURUKAWA (@yosuke_furukawa) April 14, 2014 僕のLT t_wadaさんが来るということでテストっぽい話をしたくて、Docker Node Testerの話をしました。 Node.js v0.12 に関して このブログで Node.js v0.12で変わることについて色々と紹介してきました。NANの話もそうですし、traicing apiとかsync child_processもそうです。 Node.js v0.12では他にもコアモジュールに色々とバグ修正やエンハンスが加わっています。 コアチームが互換性に配慮しているとはいえ、影響を受けてしまい、自分のモジュールが動かなくなることは考えられます。
power-assert を作るきっかけ アサーション失敗時の情報量を大幅に増やすことができるPower Assertの系譜 - Togetterまとめ chai/should/expect.js 覚えること多くて煩わしい 自分で作ろうと思い立った(2013/01/08) AST 変換 power-assert は最初から AST 変換で実現しようと考えていた Groovy の Power Assert が AST 変換を行っているらしいことは何となく知っていた Groovy 1.7 Power Assert パワーアサート(Power Assert)の真の意味 Groovy 1.7のキモはAST変換である 実装を見てはいないので、 Groovy の Power Assert が最近 AST 変換を行っていないらしいことは知らなかった…!
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く