Video: https://www.youtube.com/watch?v=LaxbdIyBkL0 Presented at at the Google WebPerf Special (London WebPerf Group), August 26th 2014. Efficient …

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
jQuery や underscore.js では isFunction とか isArray とかの型判定関数的なものがあります。 え?ライブラリ使わないとJavaScriptはろくに型すら判別できないの? 半分YESで半分NO。 そもそも typeof とはなんぞやというお話し。 よく typeof と instanceof の違いについて、 「typeof は型の文字列表現を返して、instanceof は型から派生されたかどうかを返すから戻り値は違えどやってることは一緒」 的な事を耳にしますが全くもって違います。 まず、JavaScript で言う型とは何か? JavaScript はクラスを持ちません。よって型を作れません。 え? new Object() とかできるけど? var obj = new Object() として時の obj は確かにObject型のインスタンスオブ
JavaScript Test-Driven Development with Jasmine 2.0 and Karma This document discusses JavaScript test-driven development using Jasmine 2.0 and Karma. It introduces test-driven development principles and benefits, then covers the Karma test runner, PhantomJS browser, and features of the Jasmine testing framework including describe blocks, expectations, matchers, spies, and custom matchers. It also
テストしたくないでござる。テストしたくないでござる。 いやまあきちんと環境が整ってたらテスト書くのもわりと楽だし、プログラム本体書いているときの安心感が全然違うので、それなりの規模のプログラムを書く時は良いんだけど。でも、2〜3日で書くようなちょっとしたブラウザ側だけのJavaScriptプログラムとか、開発環境がインストールされていないPCでも気軽にテストできないかなあというのが今回のテーマ。 これだけメジャーなJavaScriptなんだからテストも簡単だろうと思って調べると、ブログとかのサンプルを見てもNode.js前提だったり、Mochaが良さそうだと使おうとしたらアサーションライブラリは別だとか、UIはbrowserifyいるの?いらないの?とか、もじゃもじゃしたヤクの毛にからまって必死で刈り進める感じ。テスト初心者の人にテストコードの書き方を説明するときなんか、たどりつくまでがす
λx…yz.M for λx…y.λz.M λx.M N for λx.(M N) (x M) for ((x) M) (L M N) for ((L M) N) function(x,…,y,z){ return M } for function(x,…,y){ return function(z){ return M } } x(M) for (x)(M) L(M)(N) for (L(M))(N) function(x,…,y,z) M for function(x,…,y) function(z) M x(M) for (x)(M) L(M)(N) for (L(M))(N) code1 (function(x){ return x })(a) run code1 code2 (function(x,y){ return x })(a) run code2 code3 var k
他の方が書いたコードなどをみていると、意味が分かりそうで分からない JavaScript の書き方にしばしば遭遇します。そういった、本などではあまり紹介されていないけど実際のコードでは使われていたりする短縮された書き方のメモです。 条件分岐に関するもの 三項演算子で書く 書式 (条件式) ? 条件に当てはまる時の処理 : 当てはまらない時の処理 ; 例)変数 num の数値が5以上の場合は true 、それ以外なら false を変数 val へ代入 val = (num > 5)? true : false; 略さない書き方 if(num > 5){ val = true; } else { val = false; } if 文の true の場合だけ処理を書く 書式 if(条件式) 条件に当てはまる時の処理 ; 例)変数の数値が5以上の場合は false を返す。 if(val >
blogめったに書いてない... 2.5年で110件... 前々からJSのScannerを読んだりするのが楽しかったのですが, id:miya2000 さんからの「commentを削除するprogram」という話が出たときに, 結局JSのlexerというものは単体では生成できずParserと密着している(主にRegExpとRegExpとRegExpのせいです)ということがわかり, 自分でも書きたいという考えが浮かんできてC++でずっと書いていました. AST構築までできて, jqueryなどをparse成功 + json形式のtreeにシリアライズする程度になったのですが, せっかくなのでLLVMへのbridgeとか検討しています. LLVMおもしろいー. Constellation/iv · GitHub で, Constellation's gist: 387832 — Gist くら
Closure compiler service is deprecated, and will be removed. See issue #4199.
こんな記事があった。 My ECMAScript 7 wishlist | NCZOnline 大雑把にいうと、制限されたgetterがほしいという意見に記事のほとんどが割かれてる。 JavaScriptのデバッグ中、一番つらいものの一つに、未定義値にアクセスしたときにundefinedが代入されており、その結果が次のアクセスにならないとわからないという点だと思う。 o = { a: () => 1, b: () => 2, c: () => 3, d: () => 4 } f = o.e // ここでエラーにならない // 30行ぐらいのコードがあって忘れるとする f() // エラー これが辛い。これを回避するためにどんな仕様が必要か。 というわけで、自分がほしいものはなんだろうと考えてみた。(注意:この記事は上の記事の翻訳記事ではない) 僕自身があんまりES harmonyの議論追っ
神様もこんなプログラムを使ったに違いない。 Hunter Loftisさんが制作したこのサイトにアクセスすると、リアルタイムで岩でできたような山脈と湖の地形が生成されます。ただの1枚の画像を毎回表示してるだけではなく、毎回ちゃんと計算してレンダリングして、この大山脈を作り出してるんです。ぜひ何度かリロードしてみてください。 インタラクティブなウェブサイトが制作できる「JavaScript」が使われており、約130行のコードでたったの約4KB。ドイツのプログラミング大会で優勝した64KBのリッチなCGアニメーションや、たったの4KBのアニメーションを思い出しますよね。 このプログラムで使用しているのは「ダイヤモンド-スクエア法」と呼ばれる手法で、正方形を4つに分割していき、その中心点をランダムな位置にずらしていくことで、自然にできたようなフラクタルの図形を作ることができるんです。これはコンピ
こんにちわ、コードネームWP-Eイクラ こと @ampersand_xyzです。こぼしイクラとか、お米を覆うほどたっぷりのイクラ丼は邪道です。塩漬けの魚卵と白米との程よいマリアージュこそが正義なのです。よく覚えておいてくださいね。 さて、本日はフロントエンドエンジニア・マークアッパ向けに、Gruntの導入手引について書きたいと思います。 あなたがGruntに手を出さない理由 もしあなたがまだGruntを使っていない場合、今のやりかたで別に困ってないからではないでしょうか? 確かに、困ってはいないのかもしれません。 だがしかし、本当にその方法はベストなのかということを一度考えてみましょう。 なお、この記事はQiitaに投稿されている Grunt – Getting Started の記事を参考にさせていただいています。 作業効率化してますか? 言い換えれば、無駄な手作業をしていませんか?例え
Code Note Work JavaScriptでクエリパラメータを取得する方法 案件でクエリストリング?パラメータ?の値をJavaScriptで使いたくなったので、ちょっと調べた。 一番気に入ったのは Stack Overflow に載ってた、objectに変換して返してくれるやつ。 // クエリをobjectに変換して取得する function getQueryParameters() { // パラメータを定義するオブジェクト var parameters = {}; // 変数を定義 var match, plus, search, query; // +の正規表現を設定 plus = /\+/g; // (key)=(value)の正規表現を設定 search = /([^&=]+)=?([^&]*)/g; // クエリから?を除いて取得 query = window.loca
A JavaScript pattern and antipattern collection that covers function patterns, jQuery patterns, jQuery plugin patterns, design patterns, general patterns, literals and constructor patterns, object creation patterns, code reuse patterns, DOM and browser patterns (upcoming). Patterns collected while developing 喜感网. General Patterns Function Declarations - creating anonymous functions and assigning t
JavaScript で Mixins がどう書けるのかを、A fresh look at JavaScript Mixins « JavaScript, JavaScript… のサンプルコードを流用して説明します。各アプローチのパフォーマンス比較など、ここでの主題でないことは元記事を参照して下さい。 プロトタイプをコピーするための関数 extend を用いたミックスイン 以下は RoundButton に、Button と Circle の両方の機能を追加、つまりミックスインさせる例です。extend(arg1, arg2) という関数を定義しています。第1引数に機能を追加したいオブジェクトのプロトタイプを渡せば、そのプロパティとして、第2引数のオブジェクトのプロパティがコピーされる、という仕組みです。 var RoundButton = function(radius, label)
(Russian, Japanese) In this article I’ll explore JavaScript mixins in detail, and introduce a less conventional, but to my mind more natural mixin strategy that I hope you’ll find useful. I’ll finish up with a profiler matrix summarizing the performance impact of each technique. [A big Thank You to the brilliant @kitcambridge for reviewing and improving the code on which this blog is based!] Re-us
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く