タグ

javascriptに関するpipeheadのブックマーク (482)

  • Angular, Ember, Backbone:どのJavaScriptフレームワークを選ぶべきか? | ReadWrite Japan

    Angular, Ember, Backbone:どのJavaScriptフレームワークを選ぶべきか? JavaScriptフレームワークの選択は、開発者の好みよりもプロジェクトとの相性が大切だ。 JavaScriptベースのアプリケーションやウェブサイトのアイデアを思いついたとして、次にしなければならないのが正しいオープンソース・フレームワークを選ぶことだ。 この記事を読んでいるということは、あなたはまだ初心者や見習いの開発者かもしれない。あるいは自分のアイデアの開発を外部に委託しようと考えているのかもしれない。AngularEmber、Backboneの名前ぐらいは聞いたことがあるかもしれないが、それらがどういったもので、なぜそれらがウェブ開発の助けになるかについてまでは知らないかもしれない。 開発者はJavaScriptを様々なウェブ・アプリケーションに使用している。それはJa

    Angular, Ember, Backbone:どのJavaScriptフレームワークを選ぶべきか? | ReadWrite Japan
  • JavaScriptの関数定義 - Nao Minami's Blog

    こんばんは、south37です。 最近はEffective JavaScriptを読んでるのですが、知らなかった事がポロポロ出てくるので、とても勉強になっています。これからはちょいちょい、そーやって勉強した事をまとめていけたらいいなと思います。 って事で、今日は関数定義の話をしたいと思います。 関数宣言と関数式 JavaScriptにおける関数定義には、大きく分けて3つの方法があります。 function文を使う方法(関数宣言) function演算子を使う方法(関数式) Functionコンストラクタを使う方法 1と2が一般的によく使われる方法ですね。 // 方法1 function multi(x, y) { return x * y; } // 方法2 var multi = function(x, y) { return x * y; }; // これも方法2 var multi

    JavaScriptの関数定義 - Nao Minami's Blog
    pipehead
    pipehead 2014/02/17
    function 文 (関数宣言), function 演算子 (関数式), Function コンストラクタ, 名前付き関数式, arguments
  • JSDoc使い方メモ - Qiita

    JSDocAPI ドキュメントを生成する方法と、一部のドキュメンテーションタグの使い方についてメモする。 環境 OS Windows7 64bit Java 1.7.0_51 JSDoc 3.2.2 インストール Java Mozilla Rhino を使った方法でドキュメントを生成するので、 Java が必要。 インストール方法は割愛。 JSDoc 3 GitHub からダウンロードできる。 tags から v3.2.2 を選択して、 zip でダウンロードする。 zip を解凍したら、解凍後のフォルダにパスを通し、コマンドラインからヘルプを表示できることを確認する。 >jsdoc --help OPTIONS: -t, --template <value> The path to the template to use. Default: path/to/jsdoc/templa

    JSDoc使い方メモ - Qiita
  • 【メモ】クラス作る際の関数式と関数文での違い - Qiita

    // 関数式でのクラス宣言 var Hoge = function(){}; Hoge.prototype = { foo: 'foo', getFoo: function(){ return this.foo; } }; // 関数文でのクラス宣言 function Piyo(){ this.bar = 'bar'; this.getBar = function(){ return this.bar; }; } console.log(Hoge.name); // "" console.log((new Hoge).constructor); // function Object(){ [native code] } console.log(Piyo.name); // "Piyo" console.log((new Piyo).constructor); // function Piy

    【メモ】クラス作る際の関数式と関数文での違い - Qiita
    pipehead
    pipehead 2014/02/12
    > prototypeで宣言しただけのプロパティはhasOwnProperty()だとfalseになってしまうようです。
  • DOM操作のパフォーマンス - Qiita

    backbone.jsなどのjsライブラリで画面生成されるアプリだと、javascript部分のパフォーマンスがアプリのさくさく感にすごい影響を与える。特に、レンダリング部分がトロいと、画面スクロールとか最初の画面生成にもたつきが発生して、いちいち引っ掛かりを感じるアプリとなってしまう。 では実際のところ、どう書いたら性能良くなるの?、ということでネットをさまよってると、「DOM操作を極力なくせ」、というのが共通の見解のようだ。 例えば、イテレーションの中で一つ一つappendするのではなくてまとめてappendしたほうが良いとか、そもそもappendじゃなくて文字列でinnerHTMLに入れたほうが良い、一度作ったDOM構成をcloneして使うと良い、cloneしたDOMを操作してからreplaceしたほうが良い、とかいろいろTIPSが出てくる。 そんなわけで、自分として気になるtips

    DOM操作のパフォーマンス - Qiita
    pipehead
    pipehead 2014/02/11
    > 「DOM操作を極力なくせ」、というのが共通の見解のようだ。
  • JavaScriptはオブジェクトについて参照渡しだなんて、信じない - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    JavaScriptはオブジェクトについて参照渡しだなんて、信じない - Qiita
  • Illegal invocationって言われましても - // Nice Catch! :)

    pipehead
    pipehead 2014/01/21
    > StackOverflowによると、コンテキストの問題らしい。
  • JavaScriptのwithが遅いらしい話を検証してみた - mizchi's blog

    ポエムばかり書いてるわけにもいかんので、新しい卒論の現実逃避をする。 「CoffeeScriptの関数は明示的にreturnしてはいけない理由」を探す暇あったら他にやるべきことあるのでは? - mizchi's blog http://mizchi.hatenablog.com/entry/2013/12/16/184306 みたいな記事を書いてしまった以上、ダグラスクロックフォード卿の「JavaScriptのwithは遅いので使うべきではない」という神話を検証してみなければと思っていた。2014年においてはどうなんだろうか。 自分自身、たまにメタプロしたくなってwithを使いたい気分になることがある。John Resigとかはwith肯定派だと噂に聞いている。 実測 というわけで適当なスクリプトをでっちあげてベンチしてみる。環境は node v0.10.22 一番最初にでっち上げたコード

    JavaScriptのwithが遅いらしい話を検証してみた - mizchi's blog
    pipehead
    pipehead 2014/01/13
    let, with, Function
  • Angular.jsで組む場合のアーキテクチャは、MVCじゃなくてMVVMの方が良いっぽいと思った話 - id:anatooのブログ

    Angular.jsを何度か仕事で使ってみて、Angular.jsを使う場合のアーキテクチャはMVCじゃなくてMVVMにしたほうが良いなと思った話を書く。 Angular.jsをMVCフレームワークだと勘違いしていた 少しAngular.jsについて今まで勘違いしていたことがあって、Angular.jsではコントローラを定義できるのでてっきりMVCアーキテクチャで作るものとばかり思っていた。 公式ウェブサイトのタイトルをよくよく見てみると、「Superheroic JavaScript MVW Framework」と書いてある。MVWのWってなんだよとか思ってたらWhateverの略で、要するにMVCでもMVVMでもなんでも良いということらしい。 MVCで組んで困ったこと 勘違いが解ける前は、普通にMVCフレームワークとしてAngular.jsを使っていたけどもそれで何が困ったかというと、

    Angular.jsで組む場合のアーキテクチャは、MVCじゃなくてMVVMの方が良いっぽいと思った話 - id:anatooのブログ
  • Dropbox Datastore APIの使い方とか色々 - Qiita

    KiB(kibibyte),MiB(mebibyte)という珍しい単位を使っているのが印象的ですね。 最後の行は英語力()な人なので翻訳できませんでしたが、同期関数の呼び出しサイズだと思います、多分。 参考:Datastore API documentation - Dropbox 実際に、Dropbox Datastore APIへの登録を行なう。 まずは、開発者用のページへアクセスしましょう。 Developers - Dropbox App Console を選択します。 右上の Create app をクリックします。 Dropbox API app を選択します。 今回は、Fileも扱いたいので、 Files and datastores を選択しましたが、場合によっては Datastores only を選択しても良いです。 Appフォルダの下のみのアクセス権が必要なので、Ye

    Dropbox Datastore APIの使い方とか色々 - Qiita
  • 1分でわかるjQueryのscrollTop() スクロール位置取得の使い方

    jQueryのscrollTop()でスクロール位置を取得することでいろいろなことができるようになる。 ウィンドウ最上部のスクロール位置の取得 $(window).scrollTop()で取得。$(window).on("scroll"だけだとロード時に現在位置が表示されないので$(window).on("load scroll"と記述するのが望ましい。 function getScrollTop(){ $("#result").text($(window).scrollTop() + 'px'); } $(window).on("load scroll", getScrollTop); jQueryのscrollTop() スクロール位置取得の使い方 サンプル1 ウィンドウ最下部のスクロール位置の取得 $(window).scrollTop()+$(window).height()で取得

    1分でわかるjQueryのscrollTop() スクロール位置取得の使い方
  • Promiseについて - JS.next

    概要 Promiseとは非同期処理を上手く扱う為のAPIであり、パターンである。 非同期の処理の完了後に続けて処理を行いたいとき、よくコールバックパターンが使われるが、処理が連続するとコールバック地獄と言われる分かりづらいソースコードになってしまう。 また、複数の非同期処理が完了した時に処理を行うなど、コールバックパターンでは難しい事をスマートにできるのがこのPromiseである。 今まではDOMの方でDOM Promiseとして仕様策定が進められていたり、ライブラリのDeferredが有名だったが、ES2015標準に入ることになり、V8に実装された。 実装されたメソッド Promise.resolve(x) Promise.reject(x) Promise.all( [p1, p2, p3, ......] ) Promise.race( [p1, p2, p3, ......] )

    Promiseについて - JS.next
    pipehead
    pipehead 2013/11/28
    > ES6(2015) Promiseと今までのDOM Promise実装やライブラリのDeferredは、よく似ているけれどいくらか仕様が違うということを注意しなければならない。
  • javascriptのモジュールパターンとprototype継承について - tanihiro.log

    jsを書くとき、今まであまりprototype継承を使用せず、どちらかというとモジュールパターンで記述することが多かったので、それぞれ何が違うのか、あまり理解していませんでした。 それを今日教えてもらえたので、まとめます。 モジュールパターンとは function Hoge() { var n = 1; return { fuga: function() { alert(n); } }; } var hoge = new Hoge; hoge.fuga(); // 「1」がalertで表示される hoge.n; // Error このように、関数の返り値をobjectで返し、さらにそのobjectの中にfunctionを用意します。 fugaの中で参照しているnはクロージャの中で生き続けるので、外からでもアクセスできますが、直接は参照できません。 この、クロージャを利用してprivateや

    javascriptのモジュールパターンとprototype継承について - tanihiro.log
    pipehead
    pipehead 2013/11/21
    > モジュールパターンはprivateな変数やメソッドを簡単に定義できるが、継承はできない
  • Web開発者ツールのコマンドラインAPIが便利。色々と捗るぞ

    ある日、あるページで、Chromeデベロッパーツールのコンソールを開き、「jQuery使ってるページかな?」なんて思って、『$』と入力してエンターキーを押すと、以下のような表示に。 > $ function $() { [Command Line API] } コマンドラインAPI?? って何だ? 標準でjQueryみたいなことができるのか? と思いながら検索してでてきたのが以下のサイト。 Command Line API Reference – Chrome DevTools — Google Developers 元々Firebugについていた機能なようなのですが、Chromeのデベロッパーツールにもついているそうです。 というわけで、高校の英語の授業では成績順にA,B,Cクラスと分かれていてずっとCクラスだった自分、そして大学の英語の必須授業はさっぱり分からずに危うく単位を落としかけ

  • jQuery.extend() メソッドの使い方まとめ | Tips Note by TAM

    知っている人には当たり前のことかもしれませんが、使い方をまとめておきます。 jQuery.extend() は、基的には複数のオブジェクトをマージして返してくれるメソッドです。 (プラグインのソースで、デフォルトの設定値を上書きする時などによく見かけますね) jQuery.extend(target[, object1][, objectN]) こんな感じで使います。 オブジェクト a の内容と b の内容をマージしたいとき、 var a = { id: 1, name: 'TAM' }; var b = { name: 'TAM-new', hobby: 'football' }; $.extend(a, b); console.log(a); // 結果: // { // id: 1, // name: "TAM-new", // hobby: "football" // } $.e

    jQuery.extend() メソッドの使い方まとめ | Tips Note by TAM
  • MutationObserverを使った高速setImmediate/nextTick - 素人がプログラミングを勉強していたブログ

    MessageChannel / setTimeout / requestAnimationFrame / postMessageを使ったものより異様に速い。 というのも、setTimeout等は、次のサイクル(すなわちnextTick)の開始時に実行する関数を登録し、DOMや画面の更新後に実行されるのだが、 MutationObserverのコールバックは、現在の(同期的な)JS実行が完了した時点でコードを走らせるためである。さらに、MutationObserverは同じ実行サイクルでのDOM上の変更を次回のサイクルにすべてまとめてrecordsとしてコールバックに渡すので、これもsetImmediateの実装には非常に都合が良い。 MutationObserverのような実行タイミングをmicrotaskといい、setTimeout / postMessage / MessageCha

    MutationObserverを使った高速setImmediate/nextTick - 素人がプログラミングを勉強していたブログ
    pipehead
    pipehead 2013/10/24
    > MutationObserverのような実行タイミングをmicrotaskといい、setTimeout / postMessage / MessageChannelなどの実行タイミングをmacrotaskというらしい。
  • デザイナーが知っておきたいDOMの読み込みとjQuery | スマートフォンアプリ開発会社のエンジニアブログ

    こんにちは。ビンゴ豊島です。デザイナーという立場ですがJavaScriptもちょいちょいと書かせていただいております。 今回はDOM操作をする前に知っておきたいDOMの読み込みについて記事を書かせていただきます。対象はDOM操作ばかり、もしくはDOM操作しかしないんですけど?といったデザイナーさんになります。これを読むと今までなんとなく使っていたjQueryも意味を理解した上で使えるようになれるかもしれません。 Webページが表示されるまで ブラウザがページを表示するまで簡単に書くと下記のようになります。 サーバにページをリクエスト サーバから返されたHTMLをダウンロード DOM構築をしつつ描画と画像等のダウンロード 表示完了 このうち「3. DOM構築をしつつ描画とダウンロード」のタイミングでどのような順番でイベントや処理が発生するかを検証します。 DOMの読み込みを確認するサンプルコ

    デザイナーが知っておきたいDOMの読み込みとjQuery | スマートフォンアプリ開発会社のエンジニアブログ
    pipehead
    pipehead 2013/10/22
    スクリプトが実行される順番
  • いまさらrequestAnimationFrameを理解する - console.lealog();

    理解できたらいいな・・。 だいぶ今さら感はあるのですが、改めて知っておきたいタイミングなので。 参考:window.requestAnimationFrame - Web API リファレンス | MDN 一定間隔で処理を繰り返す CanvasでもCssアニメーションでも、「描画処理を繰り返し実行する」ところは一緒。 そこをどうやって実装するかという話で、今まではsetIntervalやsetTimeoutを再帰で呼んだりしてました。 setInterval var anim = function() { console.log('Animations here.'); }; window.setInterval(anim, 1000); 一番わかりやすいし手軽です。 だいたいいつもコレなんじゃないでしょうか。 setTimeout var anim = function() { cons

    いまさらrequestAnimationFrameを理解する - console.lealog();
  • DOM操作の最適化によるJavaScriptチューニング(後編)

    連載「Webサイト・アプリ高速化テクニック徹底解説」の第5回は、前回の「DOM操作の最適化によるJavaScriptチューニング(前編)」に続く後編です。後編では、createElement()などのDOM操作メソッドを使ったさまざまなテクニックや、パフォーマンスを劣化させるよくあるパターンについて詳しく解説します。 CodeIQとの連動企画! この記事で学べるJavaScriptチューニングのテクニックを、実際にCodeIQの問題で試すことができます。もう既に自信がある方は腕試しに、もしくは理解度チェックのための復習として是非ご活用ください!こちらから問題にチャレンジ! 前回は、DOM操作が遅い原因と仕組みについて簡単に説明し、チューニングのサンプルをいくつか解説しました。その中で、innerHTMLを利用したコードをサンプルにあげていますが、innerHTMLを利用する場合、いくつかの

    DOM操作の最適化によるJavaScriptチューニング(後編)
  • [jQuery] 異なるバージョンのjQueryを共存させる | un-T factory! Interactive blog

    un-T factory!のインタラクティブチームのブログです。こんにちわ、榎戸です。 先日とある案件でフロントエンドの実装をおこなっていたときの話です。 ひと通り実装を終え明日はクライアント確認という段階で ステージングサーバにデータをアップしたところ動きません… 弊社テストサーバでは問題なく動いていたものが なぜかステージングサーバだと動かないのです。 時は刻一刻と過ぎていき 空が白み始めたころ原因がわかりました。 jQueryの競合がエラーの原因だったのです。 実装を担当したページでは ほかにも様々なモジュールが読み込まれていたのですが、 モジュールごとに違うバージョンのjQueryを読み込んでいて それが私の書いたスクリプトと衝突していたのです。 調べてみるとこの「jQuery競合問題」には さまざまな解決法がありました。 自分自身の反省をこめて 今