タグ

javascriptに関するy_uukiのブックマーク (142)

  • 大規模 JavaScript その設計と実装と現実

    実録 WordPress Twenty Sixteen のカスタマイズ | WordBench東京 2月勉強会 「みんなのテーマ開発」〜自分の好きな作り方...Akira Tachibana

    大規模 JavaScript その設計と実装と現実
  • JavaScript MVCフレームワークはすでに十種類以上、その比較や最新情報などのまとめ

    グーグルが開発したJavaScript MVCフレームワーク「AngularJS」を紹介した1つ前の記事の反応が予想以上に大きく、1日たたずにブックマークが500以上もつきました。 記事では、AngularJS以外にもすでにたくさん存在するJavaScript MVCフレームワークに関する情報をまとめて紹介したいと思います。 JavaScript MVCフレームワークの比較記事 既存のJavaScript MVCフレームワークを比較した記事が「The Top 10 Javascript MVC Frameworks Reviewed」です。Top10と書いてありますが、12種類のフレームワークの比較です。これは公開当時は10種類だったものが、その後11種類になり、今回のAngularJSの公開で12種類になったためです。 上記のような比較表を載せた上で、12種類すべての利点と欠点を説明し

    JavaScript MVCフレームワークはすでに十種類以上、その比較や最新情報などのまとめ
  • 非同期APIと例外処理(node.js の domain について)

    node.js のような非同期APIを使ったプログラミングに拒絶反応を示すエンジニアが多い理由の一つが、非同期APIと例外処理の相性の悪さだ。 Javascript の場合、例外処理はこんな感じに記述する。 function f(i) { try { throw new Error('an error #'+ i); } catch(e) { console.log('Error caught:', e.message); } } ところが、これに非同期APIが絡むと、とたんに分かりにくくなる。例えば下の例。 function f(i) { try { setTimeout(function() { throw new Error('an error #'+ i); }, 1000); } catch(e) { console.log('Error caught:', e.message)

  • client-side javascript - ✘╹◡╹✘

    JavaScriptのすごく初歩的なことでよくわからないので整理する。よくわかってなくてすごい恥ずかしい感じがするけど書いたら誰か何か教えてくれそうだし書く。client-sideのJavaScriptは、未だあまりよく分からずにもやもやしながら適当に書いてる。もやもや感が説明したいけどなかなか説明しづらい。 例 こういうタブをJavaScriptを使って実装する例を考える。タブをクリックすると、そのタブに切り替わるというやつ。 HTML CSS JavaScript Pattern 1 深く考えずに素朴に実装すると、こういう感じになる。clickイベントに与える無名functionの中に全部詰め込む。こういう風に書いてるJSのコードはよく見る。こういうの大量に書くのはすごい簡単だけど大量にこういうのが書かれてたら読むの辛い感じがする。 懸念 例えばこれまでRubyでコードを書いていたとき

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • C言語より高速なJavaScriptによるバイナリ操作が話題

    JavaScriptなどのスクリプト言語は動作が遅く、最適なパフォーマンスを得るにはC/C++で実装しなければならないという常識に挑んだ先進的な講演が話題になっています。この話題の発端は2012年10月7日から10月8日までベルリンで開催されたJSConf.euでFelix Geisendörfer氏が行った講演です。 彼の講演の題材はnode.jsからMySQLに接続する為のバインディングのパフォーマンスに着目しています。2010年当時、node.jsにはMySQLのバインディングが存在しておらず、増井さん作のnode-mysqlモジュールが開発中の状態でした。このモジュールはJavaScriptでバイナリを解析しておりJavaScriptのみで開発されていました。この状況を受けてFelix氏が新たにnode-mysqlモジュールを新規に開発を始めました。このモジュールもJavaScri

    C言語より高速なJavaScriptによるバイナリ操作が話題
    y_uuki
    y_uuki 2012/10/11
    すごすぎる
  • なぜ次々とJavaScriptコンパイラが生まれるのか。 — DECONCEPTER

    最もJavaScriptに近いJavaScriptコンパイラ 先日MicrosoftからTypeScriptというJavaScriptコンパイラが公開されました。ファーストインプレッションとしては今までのJavaScriptコンパイラと比べると若干敷居が低く感じます。まず驚いたのはドキュメントがWordファイルだったこと。早速ダウンロードしてみたら一部文字化けしていました。さすが。PDFも用意されていたのでかろうじてドキュメントを読めました。Webページで用意して欲しい。 JavaScriptの記法そのままに型付けができる TypeScriptでまず好印象なのがJavaScriptのコードをそのまま書いてもコンパイルされるところ。又、「Type」ScriptというだけあってさらにJavaScriptの記法に型を付けられる。例えばstringと指定すればstringのプロパティをシンタックス

    y_uuki
    y_uuki 2012/10/06
    JSは中間言語
  • JavaScript : コンストラクタの書き方 : typeOf 'aki_mana'

    追記)2016-05-31 最近の私のJavaScript OO は以下の方式に統一しています。 1)抽象オブジェクトの定義(クラスベースOO言語でいうクラス) 「コンストラクタを Named NOOP Function とし、そのprototypeプロパティに属性や、実装を定義する」 2)具象オブジェクトの生成(クラスベースOO言語でいうインスタンス) 「ファクトリ関数内で new 演算子を用いて生成した新しいオブジェクトにプロパティを追加して返却」 3)継承はプロトタイプベースな単一継承を行って派生オブジェクトを作る。 4)多重継承は、条件付き多重継承とも言い換えられる Mixin を利用。 複数の親オブジェクトの特徴を受け継ぐ Mixin オブジェクトを動的生成して単一継承した派生オブジェクトを作る Q.コンストラクタ内に属性定義しないのか? A.しないです。多重継承を動的に行うため

    JavaScript : コンストラクタの書き方 : typeOf 'aki_mana'
  • JavaScript OOP におけるクラス定義方法 - IT戦記

    クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler

  • JavaScript継承パターンまとめ - Thousand Years

    プロトタイプ function Animal(){}; Animal.prototype = { sleep : function(){}, walk : function(){ alert('noshi, noshi') } }; function Human(){}; Human.prototype = new Animal(); new Human().walk(); // noshi, noshi もっともポピュラだと思われる。 変型プロトタイプ Human.prototype.__proto__ = Animal.prototype; new Human().walk(); // noshi, noshi ほとんどのIEを除くJavaScript処理系で実行可能。裏ワザちっく。 エクステンド /** * extend function * @param {Object} s su

    JavaScript継承パターンまとめ - Thousand Years
  • Collection & Copy - JavaScriptにおける古典的継承

    翻訳 原文:Classical Inheritance in JavaScript著者:Douglas Crockford ※原文のコード内に誤りがあり、このまま記述しても動作しません。著者のコメント及び補足情報は翻訳メモを参照下さい。 君は自分が利口で階級にも属さず 自由だなんて思い込んでる―John LennonJavaScriptは、クラスという概念に囚われていない言語です。JavaScriptでは、古典的な継承の代わりにプロタイプ的な継承を使用します。これはC++Javaのような旧来のオブジェクト指向言語に長けたプログラマを当惑させるかもしれません。JavaScriptのプロトタイプ的継承が、古典的継承に比べていかに表現力が優れているかを、これから見ていきましょう。 JavaJavaScript強い型付け弱い型付け静的動的古典的プロトタイプ的クラス関数コンストラクタ関数メソッド関

  • javascript - Array.prototype.slice.apply(arguments) // 引数一発配列化 : 404 Blog Not Found

    2010年04月28日22:00 カテゴリLightweight Languages javascript - Array.prototype.slice.apply(arguments) // 引数一発配列化 これなのですが… 細かいJavaScriptの仕様や習慣やテク集 - 三等兵 var func = function() { var leng = arguments.length; for(var i = 0, arr = []; i < leng; i++){ arr[i] = arguments[i] * 10; } alert(arr); }; こう書けます。 var func = function() { var args = Array.prototype.slice.apply(arguments); var arr = args.map(function(n){ r

    javascript - Array.prototype.slice.apply(arguments) // 引数一発配列化 : 404 Blog Not Found
  • niw.at — "use strict"

    最近のモダンな JavaScript では、必ず "use strict" というのが書かれていると思います。この使い方を雰囲気ではわかってるけど、正しく理解していない場合が自分も含めて多いと思ったので書きとめたいと思います。 ちなみに、"use strict" でググると Perl のそれが出てきますが、Perl の話はしません。あとセミコロンの話もしません。 "use strict"とはそもそもなにか "use strict" は、Use Strict Directive と呼ばれています。 これは ECMA-262 の 14.1 Directive Prologues and the Use Strict Directive によって示されています。 A Use Strict Directive is an ExpressionStatement in a Directive Pro

  • javascript - プロトタイプ的継承 : 404 Blog Not Found

    2006年10月18日09:20 カテゴリLightweight Languages javascript - プロトタイプ的継承 がーん。この感動はY combinatorを見たときに匹敵する。 Prototypal Inheritance function object(o) { function F() {} F.prototype = o; return new F(); } なぜこれがそれほど感動的かというと.... これを使えば、ArrayやObjectといったBuilt-Inからも難なく継承できるから。 継承のやり方としてはPrivate Members in JavaScriptが圧倒的に有名で、日でもbrazilさんによる邦訳、Collection & Copy - JavaScriptにおける古典的継承もよく知られていると思うけど、この三行を目の前にしては霞む。でもp

    javascript - プロトタイプ的継承 : 404 Blog Not Found
  • newを封印して、JavaScriptでオブジェクト指向する(2)

    前回の続きです。サンプルコードは前回から続いていると思ってください。 privateは諦めましょう 親のメソッドを呼ぶ コンストラクタ instanceofに対応する ダックタイピングのススメ 今回もobject関数を使うので再掲載。 /* * object - オブジェクトを作る * Object object(BaseObj [, mixinObj1 [, mixinObj2...]]) */ function object(o) { var f = object.f, i, len, n, prop; f.prototype = o; n = new f; for (i=1, len=arguments.length; i<len; ++i) for (prop in arguments[i]) n[prop] = arguments[i][prop]; return n; } ob

    newを封印して、JavaScriptでオブジェクト指向する(2)
  • javascript - Yet Another Base64 transcoder : 404 Blog Not Found

    2008年06月18日16:00 カテゴリLightweight Languages javascript - Yet Another Base64 transcoder すでにJavaScriptによるBase64 Encodingの実装は複数あるのですが、これまた気に入った車輪がなかったので再発明。 dankogai's js-base64 at master - GitHub Demo Textにはencodeすべき文字列を、Base64にはdecodeすべき文字列を入力 TextBase64 (URL Safe ) Roundtripiframe w/ data: Discussion まず車輪の再発明に至った理由ですが、 Firefox 2以降とSafari 3.1以降には、window.atobならびにwindow.btoaが実装されているので、使える時にはこれを使いたかった。

    javascript - Yet Another Base64 transcoder : 404 Blog Not Found
  • HisasAnn.com is for sale | HugeDomains

    Make 24 monthly payments Pay 0% interest Start using the domain today. See details

    HisasAnn.com is for sale | HugeDomains
  • JS の読込み順を征する者は なんか色々征する! with CoffeeScript - glasses factory

    CoffeeScript JavaScript require.js nikki Tweet JS の読込み順を征する者は なんか色々征する! with CoffeeScript ガツガツした JavaScript 案件をこなしていると、必ず直面するのが JavaSscript の読み込み順問題。 再利用性への考慮だったり、不必要なコードを読まないようにとモジュールを細分化した場合、 どうしてもその分 HTTP リクエストの回数が増えてしまいます。 ブラウザは読める物から読んでいくので、jQuery に依存しているのに先に読まれて jQuery がないと怒られるだとか、そういった経験は皆さんも一度はあるのではないでしょうか。 特に IE6 や IE7 などで、しょっちゅうそういった自体に遭遇するかと。 そのあたりをいい感じに解決するのが今回紹介する require.js です。

  • JavaScript のブロックスコープと名前空間 « Mozilla Developer Street (modest)]

    Web 開発や拡張機能開発で JavaScript のコードを書いていると、誰もが一度は次のようなことで悩むかと思います。 ブロックスコープと名前空間 (グローバル変数汚染の回避) 読み書きしやすくデバッグしやすいコードスタイル コールバック関数と this オブジェクトの取り扱い デバッグ方法とデバッグ支援モジュール 非同期処理の書き方 いずれも解決方法は人によって様々で、これが常にベストと言えるものがなさそうですが、私なりにそれぞれ検討したことなどを書いてみようかと思います。もっと良い方法があるとか色々皆さんのご意見やツッコミをいただければ幸いです。 JavaScript では名前空間は言語仕様でサポートされておらず、ライブラリや拡張機能などのコードを書くときにはグローバル変数の使用を最小限に抑える必要があります。先日の Mozilla 勉強会@東京 3rd でも佐藤さんと守山さんの発

    JavaScript のブロックスコープと名前空間 « Mozilla Developer Street (modest)]
  • 「JavaScriptテクニックバイブル」を執筆しました。 - しまてく

    お久しぶりです しばらく日記も書かず、若手IT勉強会も開かず、他の勉強会にも参加せず。 めっきりIT界隈のアクティビティが下がっておりました。 それもこれも決して遊び惚けていたわけではなく、タイトルにありますように 「JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技」という 書籍を執筆させていただきました。 ちょっと振り返り 4年前から細々と続けている若手IT勉強会では、その名の通り若手を中心として 主にJavaScriptを主テーマとして各種書籍を読んだり、コードリーディングを したり、時にはハッカソンをしたりと活動してきました。 その中で早期から若手IT勉強会に参加してくれていた、すがまさおさん(@sugamasao) の紹介で技評の方とお会いする機会を得ました。 そこからは一気に物事が進んで、若手IT勉強会のメンバーで今まで得た知識や Web上の各地に散らばっ

    「JavaScriptテクニックバイブル」を執筆しました。 - しまてく