JavaScript : What is it really? AND Some new features in ES6

JavaScript : What is it really? AND Some new features in ES6
Javascriptでオブジェクト指向Javascriptはプロトタイプベース(インスタンスベース、委譲による継承)なOOP。 JavaなどはクラスベースなOOP。 関数はクラス function Foobar() {}; // 関数に new でインスタンスを生成できる。 // この関数はコンストラクタとして働く var foobar = new Foobar(); alert( foobar.constructor ); // function Foobar() {} alert( foobar instanceof Foobar ); // true var Foobar = function(arg) { // このような定義にすると new した全てのインスタンス // 対してここで代入している内容が別々に作られてしまう。 this.var = arg; this.method
(追記:2012-12-15) 本記事およびこれに続くその2,その3をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍「Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍「Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版をGumroadか
http://events.html5j.org/conference/2012/09/ function hoge () { alert('ECMAScript valid'); } URLそのまま貼っちゃった!
@rosylillyが気にしていた のでまとめた。 built-in/DOM objectのprototype拡張による弊害 追加したプロパティ/メソッドがfor inで列挙される var obj = {a:1}; for (var i in obj) { console.log(i); } こうするとaだけ出るはずが、 Object.prototype.b=function(){}; こうした後だとa,bが出てしまうって奴ですね。 そのまま代入しないでObject.defineProperty/definePropertiesでenumerable:falseのプロパティとして定義すれば列挙されなくなるので特に問題ありません。 今回挙げるprototype拡張の弊害の内唯一これだけはECMAScript5時代になって解消されました。唯一これだけは。 built-in/DOM object
JavaScriptの変数のスコープをきちんと理解しているかクイズで確認してみよう -Javascript Scope Quiz
■_ MUA というかメールクライアント。 某社では某有名シェアウエアが標準のメールクライアントに指定されております。 他のメールクライアントは(原則?)使用禁止。 んでまあ日々(でもないか)困っているのがメールの検索。 インデックスやらなんやら作らず毎回正直に検索しているようで、 使っていて(ry Lift TaPL でも出てきたし、モナドの説明なんかでも良くでてくると思うんですが よくわからんのですわー >「(関数などの)lift」 満員電車 時差通勤通学 ■_ RubyのinjectみたいなメソッドをJavaでどう書く - 虎塚 Innovation is the most abused word in tech | Computerworld Blogs 本の虫: なぜedはクソなのか Ruby脳が理解するJavaScriptのオブジェクト指向 Ruby脳の僕がJavaScript
まぁ、めったにやることないと思うけど、要するにこういうの→“「ツイート」を「ツイート(笑)」に置換するブックマーク レット”を汎用的にしたやつ。「Opera用って時点で汎用的じゃない」っていうツッコミは受け付けるけど対応はしない。 準備 Operaの設定画面のウェブ検索タブを開く。 検索キーワード「s」はデフォルトだと「Opera Support」なので(残しておきたければ)「s」から別のキーワードに変える。 追加ボタンを押して検索エンジンの追加ダイアログを開く。 名前 何か適当な名前。replaceとか。 キーワード s アドレス javascript:var s='%s';var a=s.split('/');var g=new RegExp(a[1], a[3]);var r=document.evaluate("//text()[contains(., "+a[1]+")]", d
node.js と method_missing または AUTOLOAD の話 EcmaScript5 では基本的に method_missing できない。 firefox では昔から __noSuchMethod__ というので実現できていたのだけど、ES.next にはいったりはしなさそうだし、他のブラウザでは実装されることはない感じ。 一方、ES Harmony では Proxies という仕様があって、これを利用すると methodmissing っぽいことが実現可能となる。node.js では --harmony_proxies オプションをつければ利用可能になる他、node-proxyという変態モジュールをつかうと、なんかつかえるようになったりする。 Proxies つかうとmethod_missingは実現可能なようで、ここのへんに実装の方法がのっていた。 http://
JSer.info #83 - jQuery 1.8がリリースされました。 また、 Prototype.js 1.7.1がリリースされています。(tag的には6月5日に切られてた) dom.jsが書き直されていて、今後についても少し書かれています。 Perfection kills » What’s wrong with extending the DOM も一緒に読むと良い気がします。 オライリーから無料の小さな電子書籍が出ています。 どちらも面白い内容なので見ておいて損は無い気がします。 The Past, Present, and Future of JavaScript - O’Reilly Media The Problem with Native JavaScript APIs - O’Reilly Media The Past, Present, and Future of
JavaScriptの書き方はJavaScript自体がある程度自由なためいろいろな書き方ができますが、一貫性を持って書いた方がバグなども発生しにくくなるため、コーディングルールを定めておくのはよいことだと思います(特に複数人の開発の場合) 有名な企業やライブラリはコーディングルールも公開している事が多いので適当にまとめてみました JavaScript style guide – MDC Docs Mozilla/Firefox向けのものなので、一部ECMAScriptの範囲を超えたものも含まれています。 多くの人が見ていると思うので、見たことない人は一度読んでみるといいです。 jscsにこのコーディングルールをチェックするプリセットが用意されています。 Google JavaScript Style Guide Google JavaScript Style Guide 和訳 — Goo
typeof ( Date ); // => "function" typeof ( Date()); // => "string" typeof ( new Date()); // => "object" typeof ( +new Date()); // => "number" typeof (1+new Date()); // => "string" typeof ( !new Date()); // => "boolean" Date はJavaScriptのコアに組み込みのコンストラクターですね。関数です。なので typeof Date は当然 "function" になります。 いやJavaScriptじゃないけど 正確にはJavaScriptじゃなくてECMAScriptの仕様になります。 というわけで、本記事はECMA-262の15.9 Date Objectsとかを参照し
https://github.com/cho45/micro-location.js URL のクエリをいいかんじに書きかえる処理を JS でするためにいいかんじのライブラリをさがしていたのだが、URI.js はなんか大仰なかんじなので micro-location.js をつかってみた。 jQuery#extend と組みあわせることで、目的の処理は達成された模様。 l = Location.parse("http://example.com/?foo=bar&baz=boz"); # → Location l = l.params($.extend(l.params(), {lat: 4, foo: "hoge"})) # → Location l.href # → "http://example.com/?foo=hoge&baz=boz&lat=4"
jQueryは互換性を保ちつつも洗練されたAPIを取り入れているので、新しく書くときは新しいAPIを使った方が良い。 liveとかセレクタの:hoverとかはBad Partsだ。 jQuery.fn.on / jQuery.fn.off live/delegate/bind/click等は滅びた。全てonを使おう。 また、data引数を使う場合は必ずdataをオブジェクトかnullにする。dataが文字列の場合、関数の場合にセレクタ等と区別がつかないからだ。 $("body").on("click", function (event) { alert("Clicked!"); }, false); また、querySelector/querySelectorAllの登場によって、:hover等のjQuery固有のセレクタは滅びた。validなCSSセレクタと、jQueryのメソッドをch
JavaScriptのパフォーマンスを上げる13のテクニック 一部意訳あり。(特に関数についての11と13)。深く理解したい方はスライドや動画を観ることをオススメ。 (元記事) http://www.jonefox.com/blog/2012/07/10/13-javascript-performance-tips/ - 先日、Googleのダニエル・クリフォードは"Google I/O 2012"にて「V8で打ち破るJavaScriptのスピードリミット」と題した素晴らしい講演を行った。その中で彼は、JavaScriptコードで実践できる13のシンプルな最適化手法を紹介している。それらはChromeのV8 JavaScriptエンジンのコンパイルや実行速度を上げ、コードを速くするものだ。彼はそれらについての多くの説明を行なっているが、もしただシンプルTips一覧が欲しいというなら、以下を
JSer.info #78 - JavaScriptでstrict modeの宣言を行う”use strict”;について"use strict" - blog.niw.atに詳しく書かれています。 あんまり気にすることは無い気がしますが、Directive Prologueと”use strict”;についてまで書かれてるのは珍しいと思うので、一読しておくと良い気がします。 ECMAScript勉強会 アウトラインメモ | Web scratch これの最後のほうでも同様の話 Does ‘use strict’ in a FunctionBody apply strict mode FutureReservedWord restrictions to function name or arguments? strict mode自体については以下などを見ると、どういう効果があるのかがわか
CoffeeScriptは、JavaScriptのコードを生成するためのコンパクトなスクリプト言語です。JavaScriptの言語仕様から、あいまいさやわかりにくさを排除した仕様を持っているので、JavaScriptよりもシンプルなコードで処理を記述できます。JavaScriptで複雑な処理を記述したり、大規模なアプリケーションを開発したりする必要があるときに適しています。 目次 千葉県鎌ヶ谷市在住のライター。自著・監修の書籍が100冊達成まであと1冊になりました。だからなんだというわけでもないのですが、ひとつの区切りということで(^^;。 これからも、少しでも役立つ書籍、記事を書いていきたいと思いますので、どうぞよろしくお願いいたします。ホームページ:サーバサイド技術の学び舎 - WINGS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く