タグ

javascriptに関するthreeMonthsのブックマーク (144)

  • 書評:仕事でJavaScriptを覚える人に「プロになるためのJavaScript入門」

    プログラミング言語の経験がある人がJavaScriptを覚えようとすると、「あれ? なんか違うぞ?」という経験を何度もするのではないでしょうか。どうも配列は自分の知ってる配列っぽくないし、オブジェクトもオブジェクトっぽくない。 書「プロになるためのJavaScript入門」はそうした、ある程度のプログラミング知識を持つ人のためのJavaScript入門書としてとてもよく書かれています。以下の一文は、JavaScriptの文法を解説した第2章の冒頭に書かれたものです。 JavaScriptの文法要素は単純に見えて、深く掘り下げていくとまったく違う姿を現すということがよくあります。たとえば、スコープの実体はオブジェクトですし、メソッドは関数です。また、関数は突き詰めるとオブジェクトで、さらにクロージャという側面も持っています。このように、JavaScriptの文法の学習とは「Aだと思った?

    書評:仕事でJavaScriptを覚える人に「プロになるためのJavaScript入門」
  • JavaScript OOP におけるクラス定義方法 - IT戦記

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

  • JavaScript のスコープチェーンとクロージャを理解する - tacamy--blog

    前回で JavaScript のスコープの基がわかったので、今回はスコープチェーンとクロージャを勉強してみました。 Call オブジェクトとクロージャの理解がかなり大変でした・・。 変数オブジェクト JavaScript で変数の宣言と参照をするということは、変数オブジェクトを読み書きするということです。 変数オブジェクトというのは、key と value による変数管理専用のハッシュテーブルのこと key が変数名、value が値のセットになっているテーブルで、変数の数だけレコードができるイメージ 変数オブジェクトはプログラマが意識することのない、便宜的なオブジェクト グローバルオブジェクト JavaScript は、ブラウザが新しいページを読み込んだとき、内部的に新しいグローバルオブジェクトを生成して初期化します。 グローバルオブジェクトとは、グローバル変数やグローバル関数を管理す

    JavaScript のスコープチェーンとクロージャを理解する - tacamy--blog
  • JavaScriptでうっかりやってしまいそうなこと色々

    こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。

  • QUnit

    The powerful, easy-to-use JavaScript testing framework.Get Started View the Docs Easy Easy, zero configuration setup for any Node.js project and minimal configuration for Browser-based projects. Universal QUnit can run anywhere; web browsers, Node, SpiderMonkey, even in a Web Worker! Test your code where it runs.

  • QUnitの基本的な使い方 - but hopeful

    [追記] 2013/9/1 三年前の記事が未だに読まれているようなので、一応書いておきますが、あれから色々変わってもっと良いものも出ています。 QUnit でも別に問題はないですが、今から QUnit を使うよりは http://visionmedia.github.io/mocha/:title=mocha] とかの方が個人的にはお勧めです。とにかく、今は色々あるのでもっと別の選択肢調べて見ることを個人的にはおすすめします。別に QUnit は使わないほうが良いとは言いません。 JavaScriptのテスティングフレームワークはいろいろありますが、自分は今主にQUnitを使っているので、少し使い方をまとめて見たいと思います。 [追記]今回作成したソースを上げました。ninja.js QUnit とは QUnitはもともと、jQueryをテストするために開発されたJavaScript Un

    QUnitの基本的な使い方 - but hopeful
  • QUnit再入門(version 1.10.0 編) - L4L

    JavaScriptのユニットテストは2年ほど前にQUnitから入って、最近はもっぱらJasmineを利用していました。近年のJavaScriptテスト関連情報をまとめたいなと思い、改めてQUnit最新Version1.10.0のドキュメントとソースを読んで仕様を把握して資料にまとめてみました。 Qunit1.10.0 from Koji Nakamura サーバーサイドJSを開発する時にQUnitを採用する選択肢は僕の中ではないのですが、ブラウザJSを開発する時にはこのシンプルさと導入のしやすさはやはり利点だなと再認識した次第です。

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

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

    大規模 JavaScript その設計と実装と現実
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Javascriptでイベントハンドラのコールバック関数に引数を渡す - yummy-yummy

    javascriptでゴリゴリコードを書いていると、最近のライブラリではコールバック関数を渡すのがけっこう日常茶飯事なようで、コールバック関数を渡すのはいいが、その関数に引数を渡してあげたい!!ってことがよくあるのですよ。 今までなんとか引数は諦めてしのいでたけど、どうも納得がいかないんで調べてみた。 例えばとあるボタンのイベントハンドラで、クリックした際にhogeというfunctionが実行されるようにしたいってな場合は、こんな感じで書きます。 var hoge = function(evt) { alert("hogehoge" + evt); } btn3 = document.getElementById("btn3"); btn3.addEventListener("click", hoge, true); しかしこの「addEventListener」に引数を渡したくて、こんな

    Javascriptでイベントハンドラのコールバック関数に引数を渡す - yummy-yummy
  • constructor プロパティについて - hogehoge @teramako

    説明をつけておくと、constructor プロパティは、オブジェクト作成時に自動的に生成されるプロパティで、そのオブジェクトが生成されたときに使われたコンストラクタが参照されています。 ミックスインパターン new this.constructor() の利用 - わからん たまたま見つけたので引用するけど、何処か別のところでも似たような勘違いが書かれていたように思う。もしかすると、このように勘違いしている人は多いのかもしれない。 正しておきたいと思う次第。 間違っているのはconstructor プロパティは、オブジェクト作成時に自動的に生成されるプロパティという部分。 constructor プロパティが生成されるのは、Function オブジェクトが生成されたときです。 以下は、Function オブジェクトが作られる時の処理の流れの一部です。 Let proto be the r

    constructor プロパティについて - hogehoge @teramako
  • あなたの知らないECMAScript

    http://events.html5j.org/conference/2012/09/ function hoge () { alert('ECMAScript valid'); } URLそのまま貼っちゃった!

  • JSのCIで椅子を投げられないため方法

    状況はかなり改善した 非同期、setTimeout, Ajax系はSinonJSで簡単に Swarm系のツールでDOMのテストも容易に 環境構築も非常に楽になった PhantomJSはバイナリもあるし、ビルドも簡単 Swarm系のツールならブラウザでURLへアクセスすればすぐテスト開始

  • Greasemonkeyの共通な落とし穴を避ける - minghaiの日記

    Greasemonkeyの過去においてのセキュリティ上の問題の解説。 Greasemonkeyだけに限らず、JavaScriptによるユーザ拡張を作成している全ての方に対して一読の価値があるドキュメントだと思われます。 原文:O'Reilly Media - Technology and Business Training Greasemonkeyの共通な落とし穴を避ける Greasemonkeyのセキュリティ歴史があなたの今にどう影響するのか (著) Mark pilgrim "Greasemonkey Hacks"の著者 2005/11/11 昔々、あるところにセキュリティホールがありました。(これは普通のおとぎ話ではないからそのまま読んでください。) Greasemonkeyのアーキテクチャは最初に書かれて以来大幅に変更されてきた。Version0.3は初めて広範囲に人気を得たバー

    Greasemonkeyの共通な落とし穴を避ける - minghaiの日記
  • Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - monjudoh’s diary

    Firebugでは条件付きブレークポイントが使えるので、 scriptタブにて該当行にブレークポイントを貼り、 条件としてconsoleへの出力を||区切りで、最後に&& falseを入れる。 console.debug('this.lastPosition') || console.dir(this.lastPosition) && false こうするとブレークポイントを通る度にconsoleへの出力は評価され、 consoleに出力され、最後の&& falseのため式全体は必ずfalseとして評価されるため ブレークすることはない。 追記 console出力系関数の戻り値はundefinedなんだから&& falseは不要か 追記 nanto_vi @monjudoh JSでは||より&&の方が優先順位が高いので、a || b && c はaが真ならbもcも評価されずに全体が真として

    Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - monjudoh’s diary
  • JavaScript - MDC

    JavaScript チュートリアル 初級編 JavaScript の基礎 JavaScript の第一歩 JavaScript の構成要素 JavaScript オブジェクト入門 JavaScript ガイド 入門編 文法とデータ型 制御フローとエラー処理 ループとイテレーター 関数 式と演算子 数と日付 テキスト処理 正規表現 インデックス付きコレクション キー付きコレクション オブジェクトを利用する Using classes プロミスの使用 JavaScript 型付き配列 イテレーターとジェネレーター メタプログラミング JavaScript モジュール 中級編 クライアントサイド JavaScript フレームワーク クライアントサイド Web API Language overview JavaScript のデータ構造 等値比較と同一性 プロパティの列挙可能性と所有権 クロ

    JavaScript - MDC
  • JavaScriptのデバッグTips - os0x.blog

    JavaScript Advent Calendar 2010 8日目担当のid:os0xです。 JavaScriptネタは案外範囲が広くて色んなネタがあるので、毎回が楽しみですね。 さて、私はデバッグをネタにしたいと思います。テストではなくデバッグです。誰かが書いたコードをメンテナンスしなきゃー、とか。jQueryプラグイン導入しようとしたけど、なんかうまく動かないーみたいなケースのおはなしです。 JavaScriptのデバッグは大変なので、多くの方が日々苦労されていると思います。なぜJavaScriptのデバッグが大変なのか少し整理してみましょう。 ブラウザ依存 まず、なんといってもJavaScriptはウェブブラウザ上で実行されるので、環境が一定ではありません。特定の環境だけを対象にJavaScriptを書くことは滅多にありません。PC向けではIE、Firefox、Chrome、Sa

    JavaScriptのデバッグTips - os0x.blog
  • 【JavaScript】 JavaScriptで urlencode() する方法。

    JavaScript でURLエンコードする方法を何度も何度も調べてる気がするので、いい加減メモる。 groundwalker.com さんが、詳しく比較してくださっている。 エンコードする関数には、 escape(), encodeURI(), encodeURIComponent() の3種類、それぞれ対応するデコード関数 unescape(), decodeURI(), decodeURIComponent() が用意されている。 次の文字列は、http://www.aaa.jp/?text=あ ああ を escape()した結果。(JavaScriptがONじゃないと見えません)

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

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

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

    JSDeferredを読み込み展開すると、Globalで新しく使えるようになるメソッドは、「next」「call」「parallel」「wait」「loop」の次の5つ。 どのような事をするLibraryなのかなんとなく理解できますね。実行中のエラーを捕まえる「error」なんてのもあるようです。これらを、メソッドチェーンで繋いでいくのが、JSDeferredの使い方らしいです。何故、「らしい」かというと使った事がないから。でも、JSDeferredを使っている人やJSDeferredのコードを読んだ人のblogからは興奮が伝わってきます。