EasyRamble は、技術ネタや子育て、英語学習、アウトドアなどについて綴るブログです。Ruby on Rails や Swift などで、Webサービス/アプリを作っています。
先日以下の記事で、クライアントサイド JavaScript での require による依存解決の方法を読みました。一言で言うと Browserify というライブラリを使って、クライアント側 JavaScript でも、モジュールをファイルごとに分割して require で読み込むための手順。 Browserifyでrequireを使ってjavascriptの依存関係をすっきりにしてみる – ぼくのかんがえたさいきょうのうぇぶさーびす これを真似したくて、昨日日曜日に試したのでその記録です。 ぼくうぇぶさんのページでは、JavaScript のビルドツール(タスクランナー)として Grunt を使ってありますが、個人の好みにより私は Gulp を使用します。Grunt も Gulp も JavaScript/CSS などフロントエンド用のビルドツールで、C言語の Make、Ruby の
発端は javascript:alert([].sort.call(null)) これで window オブジェクト取れるのなんで? http://twitter.com/edvakf/status/9222713572 という投稿。 この不可解な挙動を説明することは案外難しい。 まず、ES5のstrict mode以前(つまり、今普通にJavaScriptを使う場合)では、 function fun() { return this; } alert(fun.call(null) === window); がtrueになる。 それから、 var a = [3, 2, 1]; alert(a.sort() === a); alert(a); // [1, 2, 3] sortは破壊的であり、thisを返す。 thisが配列以外の場合については、仕様では未定義であるが、どうなのか。id:nan
prototypeに対する理解を深めるために少し考えてみた var obj = {}; var func = function(){}; alert(obj.prototype); //undefinedと出力 alert(func.prototype); //[object Object]と出力 まずprototypeプロパティを出力してみる。obj(普通のObject)の場合、undefinedと出力される。つまりprototypeというプロパティ自体もっていない。これに対してfunc(普通のfunction)の場合、prototypeはObjectになる。ここで、prototypeに指定されたオブジェクトはプロトタイプオブジェクトと深い関わりがある。順を追って説明する。 JavaScriptにはプロトタイプチェーンという仕組みがある。このプロトタイプチェーンの仕組みは全てのオブジェク
I was recently reminded about Dmitry Baranovsky's Javascript test, when N. Zakas answered and explained it in a blog post. First time I saw those questions explained was by Richard Cornford in comp.lang.javascript, although not as thoroughly as by Nicholas. I decided to come up with my own little quiz. I wanted to keep question not very obscure, practical, yet challenging. They would also cover wi
はじめに JavaScriptはオブジェクト指向言語です。しかし、そのオブジェクトの性質は、他に良く知られているオブジェクト指向言語のJavaやC++と大きく異なっています。 そこでこの記事では、なぜそのような違いがあるのか、JavaScriptにおけるオブジェクト指向の言語思想を見ていくと共に、その違いの根幹であるプロトタイプについて解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(JScript、ActionScript)でも通じる内容になっています。 対象読者 プログラミングの基本的な知識、ならびにオブジェクトやメソッドと言った基礎的な概念については、ここでは解説しません。最低限、オブジェクト指向プログラミングについて理解をして
http://d.hatena.ne.jp/amachang/20070413/1176421425 勉強会のあと、そしてこの記事の後、 もう一度自分の中でprototypeについてまとめてみた。 下の実行結果を見て、首をかしげた人は是非とも読んでいただければと思う。 (って、首をかしげるのは僕だけか?!) var Box = function(size){ this.size = size; }; Box.prototype = { color: "red" }; var box = new Box(10); alert(box.color); // red Box.prototype = { color: "blue" }; alert(box.color); // red var box2 = new Box(11); alert(box2.color); // blue Box.p
「まるごとJavaScript & Ajax ! Vol.1」買いました。 まるごとJavaScript & Ajax ! Vol.1 作者: 天野仁史,舘野祐一,川崎有亮,arton,田中孝太郎,国分裕,山本有悟,海野裕也,nanto_vi出版社/メーカー: インプレス発売日: 2007/02/15メディア: 大型本購入: 8人 クリック: 98回この商品を含むブログ (78件) を見る えーと、最初にartonさんのJavaScriptの落とし穴があって、その次が弾さんプロタイプベースオブジェクト指向の解説(404 Blog Not Found:javascript - プロトタイプ的継承とか)があって、その次がid:amachangのPrototype.jsの解説で、その先が…でとにかく盛りだくさんですね! あっ。 弾さん、それまずい。 前から気づいてたんですけど、その方法じゃArr
This is a collection of those very special irregularities, inconstancies and just plain painfully unintuitive moments for the language of the web. 主要なすべてのWebブラウザはJavaScriptエンジンを搭載している。JavaScriptを含んだページをアップしさえすればブラウザ側で動作する。何らかのWebサービスを組み合わせてればそれだけで別のサービスを提供するページを作れる。ブラウザにおけるJavaScript実行性能は日進月歩で高速化しており、WebページやWebアプリケーションを作成する言語として日々その重要性が高まっている。 扱いやすい言語ではあるが、眉を寄せたくなることが多い言語でもある。その不可解で理解しにくい挙動に悩まされたプ
Photo by spud murphy 先ほどの記事のコードにミスがあり、継承を行うと、親クラスも書き換えてしまうバグがありました。コメントやTwitterで報告いただいた方々ありがとうございます。 あの後、調べて見れると、あまりスマートに継承を実現する方法は無いみたいですが、ユーザが作ったクラス(StringなどのAtomic型を除く)は下記のコードで継承が行えます。 特に、Array型を継承するのは、無理なようです。[]を上書きできないので、どうしようも無いみたいです。残念。 <body> <div id="result"></div> <script> var puts = function(str) { var el = document.getElementById('result'); el.innerHTML = el.innerHTML + str + "<br/>";
いまやWeb制作に欠かせなくなったJavaScript。でも、「JavaScriptはほとんど“アリモノ”で済ませている」という方も多いのでは? そこで、WebデザイナーやマークアップエンジニアなどのWeb制作者の方向けに、いま一番人気のJavaScriptライブラリー「jQuery」の基本を学べる特別レッスンをお届けします。題して、「40分で覚えるjQuery」。要点だけにぎゅっと絞って解説しますので、手を動かしながら今すぐjQueryを始めましょう。 【0分目:導入編】 jQueryのダウンロードと利用方法 jQueryのライブラリー本体(JavaScriptファイル)は公式サイトからダウンロードし、head要素などにscript要素を書いて読み込みます。
最近、社内で PHP Spidermonkey が流行って(?)いるようです><! Cybozu Inside Out: SpiderMonkeyを使ってPHPでサーバーサイドJavaScript id:ama-ch さすがです>< というわけで 僕も、 PHP の Spidermonkey でどのくらいのことが出来るのか試してみました>< まず、 Hello, world! <?php // new して $js = new JSContext(); // print 関数作って $js->registerFunction(function($v) { print $v; }, 'print'); // こんにちはこんにちは! $js->evaluateScript('print("Hello, world!!")'); Hello, world!おおお、簡単! 次は、 id:m-hiy
プログラミング言語の文法をまとめた最速基礎文法マスターが流行っていますが、それだけだと物足りないので少し視点を変えてJavaScriptという言語の基礎となっている概念について簡単にまとめてみようと思います。(基礎文法についてはこちらを参照してください) (20010/2/4 記述ミス Typoなどを修正しました) JavaScriptの基本概念 JavaScriptの基本となる概念は次の二つです。 連鎖指向 全てがオブジェクト 連鎖指向はプロトタイプチェーンやクロージャ、全てがオブジェクトであるという性質は連想配列やプリミティブ型などの性質に関わってきます。 連鎖指向 JavaScriptでは変数、オブジェクト、メソッドなどのリソースの利用において鎖のようにリソースを定義や宣言できるポイントが連なり、一番近くの宣言や定義に基づいてリソースの内容が決定される、という仕組みが採用されています
続々と増え続ける基礎文法最速マスターシリーズ(あまりにも増えてきたので他の言語記事へのリンクは別の記事に移しました)。 JavaScript 版は誰も書いていなかったようなので書いてみます。こういう解説記事的なものを書くのは初めてなので変なところがあったら指摘して頂けるとありがたいです。 JavaScriptの基礎概念についての解説はこちら:JavaScript基本概念最速マスター - TechTalkManiacs 1/31 23:58追記 コメント欄のos0xさんのご指摘を基に一部追記・修正を行いました。 2/2 2:52追記 switch文・正規表現・例外処理について追加しました。 2/2 6:44追記 コメントでfavrilさんにご指摘頂いた点(typo & コメント・サンプル追加)を修正・加筆しました。 2/2 7:15追記 トラックバックでLiosKさんにご指摘頂いた点(cal
Not your computer? Use a private browsing window to sign in. Learn more
js で、C++ ライクなクラス コンストラクタ(init)とデストラクタ(fin)が使える 生成は 親親⇒親⇒子, 廃棄は子⇒親⇒親親 の順で実行 デストラクタ(fin)を明示的に呼ぶと、インスタンスの全てのプロパティが null で上書される(使えなくなる)。 window.onunload で、オートデストラクト 三階層まで継承できる(子<親<親親) uu.Class("B : A", {}) や uu.Class("C < B", {}) で簡単に継承できる 継承が不要なら uu.Class("C", {}) で素のクラスを定義できる 下位のクラスから上位のクラスのメソッドが呼べる this.superMethod(arguments.callee, "呼び出すメソッド名", var_args...) または this.superMethod(呼び出し元のメソッド名, "呼び出すメ
「ショートコーディング(short coding)」とは、より少ない文字で処理を記述することを指し、結果として同じ処理を記述するためにタイプするキーが少なくなります。その一方で、文字数を減らすためにどのような処理を表現しているのか分かりにくくなる、つまり難読化を招くため、批判する向きもあります。 しかし、インタプリタ言語であるJavaScript(ECMAScript)の場合、文字数を削減するということはコードの読み込み時間が短縮できることを意味し、結果としてページの読み込み開始からJavaScriptの実行開始までの時間が短縮できることになります。 このページは、JavaScriptの主なショートコーディングをまとめたものです。
自分なりのまとめです。 【他、参考となるサイト】 http://d.hatena.ne.jp/keyword/%a5%af%a5%ed%a1%bc%a5%b8%a5%e3 http://www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs03/ajaxjs03_03.html http://www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs03/ajaxjs03_04.html 内部関数 関数内で更に関数を定義することができます。 function test(test_str){ function sub(sub_str){ alert(sub_str); } sub("TEST:" + test_str); } test("!!!"); //「TEST:!!!」と表示される。 //←ここでsub("!!!");とはできない。 関数
Captcha security check hisasann.com is for sale Please prove you're not a robot View Price Processing
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く