Gistにレポート上げてこうかと。 後程。
ECMAScript6では、functionの代わりに=>を使えるようになる http://css.dzone.com/articles/exciting-future-javascript-0 ES6、だいぶドラスティックな変更に傾きつつあるよう。ES4の二の舞にならないといいのですが・・ 2012/04/03 BBCがレスポンシブデザインを採用 - 本日のHTML5とか最新情報 - IT-Walker on hatena HTML5のMLにECMAScript全快な話を広げるのはアレな気がしたので、こちらでヒッソリと書こうと思う。 まず、本当に『ES4の二の舞にならない』ことを願う。 んで、arrow functionこと=>に関して、まだECMASCript6thに入ることが決まっているわけではないと思う。記事でも ECMAscript, 6th edition might brin
ecmascript , 6th edition might bring us fat arrow notation – douglas crockford on fat arrows function (x) { return x * x; } // becomes (x) => x * x douglas’ post concerns itself mostly with the intricacies of how this is bound to the function object and what the fat arrow notation might bring, what i see is something completely different. proper lambdas! that’s right, functions that implicitly ret
This document discusses various JavaScript best practices including: - JavaScript is object-oriented with only 5 primitive types - Objects are collections of key-value pairs where some values can be functions - Variables should be declared with "var" to avoid global scope issues - Function scoping and variable hoisting can cause confusion; variables should be declared at the top of functions - Str
HTML5の基盤言語として注目を集めているJavaScript。JavaScriptが生まれたのは1995年。以降、紆余曲折を経て発展したJavaScriptは、現在、次世代の仕様であるECMAScript 6th(以下、ECMA6th)として標準化が進んでいる。とはいえ現行バージョンであるECMAScript 5th(以下、ECMA5th)に搭載されている機能中にも、ブラウザによってはサポートしていないものもある。ECMA6thにはどんな機能が追加されるのか。それを知るために、Mozilla Japanの浅井智也氏はまず、現行のバージョンに搭載されている最新機能について詳しく解説。さらにECMA6thに搭載されるであろう機能を紹介した。 後方互換も可能、ECMAScript 5thの使える機能 「このセッションでは現行JavaScriptの注目機能と、実装ありの次世代仕様を中心に話をする
(追記) Version 0.3をリリースしました。 先日のjava-ja温泉で「JavaScriptは独りでヒャッハーするのには良いけど、複数人で開発しだすと途端にカオスになって苦労する」という話になった。それに対する解の一つはClosure Compilerが採用したアノテーションによる型の定義と静的チェックだろう。それとは別のアプローチで何かできないかなと考えていたら、ECMAScript 6にObjectのプロパティアクセスをフックできる仕組み(Proxy.create)があったのを思い出した。Proxy APIを使ってみたら型チェックが効くC言語の構造体みたいな物が作れたのでライブラリ化した。 hagino3000/Struct.js https://github.com/hagino3000/Struct.js これを使うと何が良いかというと obj = {}; obj.hog
This is not the official ECMAScript Language Specification. The most recent final ECMAScript standard is Edition 5.1, the PDF document located at http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf. This is a draft of the next edition of the standard. This page is based on the current working draft published at http://wiki.ecmascript.org/doku.php?id=harmony:specification_draf
Google Chrome runs web pages and applications with lightning speed. GoogleはChromeのDevチャンネルおよびCanaryチャンネルに、次世代JavaScriptの実装を追加したと発表した。次世代JavaScriptは2013年末にはリリースされると見られている。リリースまで、あと2年弱ほどあるが、この新機能がいち早くChromeで試せるようになったことは注目に値する。 今回実装された新機能を試すにはChrome DevチャンネルまたはCanaryチャンネルを起動し、「chrome://flags」から「Experimental JavaScript features」の機能を有効にする必要がある。このため実用的に利用できるものではないが、試験目的で利用するには十分な環境が登場したと言える。 次世代のJavaScr
http://d.hatena.ne.jp/gfx/20120223/1329996834 (o.f=o.f)()はglobalになった これの解釈はどうすれば…。 こういうのは仕様書見ればだいたい解決する。 http://www.ecmascript.org/docs.php 今回は3rdを参照しましたが5thでも同じであろう。 メソッド呼び出しは11.2.3のFunction callsなので、それを見る。 => 最初に(o.f=o.f)を評価 => =を使っているので、11.13.1 Smple Assignmentのルールに従って処理される。 => LeftHandSideExpression = o.f, AssignmentExpression = o.f => この処理の返り値は、GetValue(AssignmentExpression)である。 => 8.7.1 GetV
オブジェクトの生成にnew演算子を使わないのが今どきらしい。じゃあ、どうすりゃいいのよ? こんなんで良さげ。 var Hoge = Object.create({}, { // プロパティ val: { set: function(a){ this._a = a }, get: function(){ return this._a }}, // メソッド add: { value: function(a){ this._a += a } }, // イニシャライザ init: { value: function(a){ this.val = a; return this; } } }); var h = Object.create(Hoge).init(1); h.add(4); h.add(2); console.log("value:" + h.val) メソッドはvalueにfunc
昨日書いた new を使わないインスタンス生成は、実際に使ってみると、たかだかオブジェクトの生成ごときで Object.create(Hoge.prototype).init(); とか長いし、init呼ぶの忘れそうだし、init メソッド定義しないといけないし、return this 忘れるとハマるしで糞すぎ。 というわけでFunctionを拡張してオブジェクト生成用のcreateメソッドを作ってみる。 Object.defineProperty(Function.prototype, "create", { value: function() { var obj = Object.create(this.prototype); if (obj.init) { // initを持っていれば、イニシャライザとして呼ぶ。 obj.init.apply(obj, arguments); } r
こんにちは。大形尚弘です。 さて、ついに OOP の話も ECMAScript の実装に移ります。乗りに乗った Dmitry 先生が、前節を越えるボリュームを持って、日本全国30人(はてなブックマークの平均による導出)の ECMAScript ファンの皆さんに襲いかかります。 正直に言って、私はもう10年以上 JScript 、 JavaScript 、 ActionScript に関わってきましたが、プロトタイプの話は、内部 Prototype プロパティが「どういうわけか」コンストラクタ関数の prototype プロパティと同じ呼び名を与えられていることを発端として、常に混乱を伴ってきました。一度理解したつもりでも、すぐに忘れてしまい、わけが分からなくなってしまうのです。 それはどういうことかというと、一度もしっかり理解していなかったからです。 この節を読めば、それが理解できます。お
全国20人の ECMA セオリストのみなさま、おつかれさまです。大形尚弘です。 ついに Dmitry 先生の ES3 シリーズも最終章となりました。この後に ES5 シリーズが5章続きますが、それらは基本的に今シリーズの補足として書かれたものですので、ここまでお読みいただいたみなさまは、ほぼ ECMAScript の理論的側面を理解したと言えます。 もしそうでない部分があったとしても、実際に ECMAScript の仕様書をご覧いただければ、これまでとは全く理解度が違っていて、あっという間に足りない知識を補足できると思います。端的に、「仕様が読める」ようになっているはずです。 ES5 であれば、本来 PDF である仕様書を、有志の方が es5.github.com にて「注釈付きの」 HTML 形式で公開し、頻繁に更新されています。注釈の一つはもちろん我らが Dmitry 先生の ES シ
This is an archived page. It's not actively maintained. ECMAScript 2015 is the sixth edition of the ECMAScript Language Specification standard. It defines the standard for the JavaScript implementation in SpiderMonkey, the engine used in Firefox and other Mozilla applications. Code-named "ES.next", "Harmony", or "ECMAScript 6", the first working draft (based on ECMAScript 5.1) was published on Jul
ECMAScript 3 の typeof 演算子 typeof演算子は対象の型を返す演算子ですが、null に適用すると "object" が返ってきます。 console.log(typeof null === 'object'); // true では、null は Object 型なのか、というとそうではなくて仕様バグだったりします。 Changed 3 weeks ago by brendan You know, this all came about because of rushing in early May 1995, which led to a leak of type tag representation shared by null and object types. But null means "no object", so it didn't raise h
encodeURIComponent の URIComponent って何 ECMAScript の escape() は Version3 では deprecated で、代わりに encodeURI() と encodeURIComponent() を使うようにものの本には書いてあります。でも僕が愚かなあまり違いがわかっていなかったんですが、今日わかりました。 encodeURI() は、URI 全体として有効な文字になるようにする。なので/や:や#といった URI のデリミタとして予約されている文字はエスケープされないし、もちろん_など、とにかく URI につかっても問題ない記号はエスケープされない(馬鹿っぽい結論ですみません)。 encodeURIComponent() は、URI Component として有効な文字になるようにする。でこの URI Component というのが
おつかれさまでございます。東洋大学柏原選手の好きな声優は花澤香菜さんですが、株式会社ミクシィ大形選手の好きな声優は五十嵐裕美さんです。お世話になります。 さて、 Dmitry 先生の ECMA-262-3 シリーズもついに山場、クロージャの章へとやって参りました。「 JavaScript はクロージャが使えて強力」「 JavaScript 理解のキモはクロージャ」などといった売り文句や脅し文句を耳にされたことは無いでしょうか。クロージャがなぜ強力なのか、そしてそれはどのような仕組みに基づくものなのか、これは ECMAScript だけに留まらず、一般的な意味でクロージャを理解できる名章です。どうぞお時間のある時に、気持ちを落ち着けて、ごゆっくりご覧ください。 詳細 ECMA-262-3 シリーズ 第1章 実行コンテキスト 第2章 変数オブジェクト 第3章 this 第4章 スコープチェーン
若干遅いですが、あけましておめでとうございます。 今年もこっそり! 昨年からcoffee-scriptが流行り出しましたね! coffee-scriptってもう現場でも使われ始めてるのかな? Railsな人たちは使ってるんだろうけど、JavaScriptでアプリ書いちゃうようなゴリゴリ書いてるところでも採用してたりするのかしら。 個人的には素のJSの方が小回りが利くので好きなのですが、誰が書いても出力されるJSの文法を揃えられるところはいいですね。 いや待てよ、よくよく考えてみれば、JavaScriptトランスレータな形でフレームワークの機能を提供するのはありかも。 人によってコールバックだったりイベントドリブンだったり、書き方が異なるとコードレビューも大変ですしそういうのを言語側で吸収するのはよさそう。ってか同じこと考えてる人結構いるんじゃね? これはもう、2012年は間違いなくオレオレ
2011年12月28日15:45 カテゴリLightweight Languages javascript - 'string'[0] === 's'; // officially with ECMAScript5 JavaScript: The Definitive Guide (6th Ed.) David Flanagan ECMAScript 5を使いたい4つ目の理由かも。 str[i] = str.charAt(i) 当初はFirefoxぐらいしかサポートしていなかった文字列の配列扱いも、ES5以降は公式です。 六代目サイ本にもそう明記してあります。 var i, s = 'string'; for (i = 0; i < s.length; i++){ p(s[i]); p(s.charAt(i)); p(s[i] === s.charAt(i)); } Array.proto
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く