この和訳について¶ この文章は Google JavaScript Style Guide を非公式に和訳したものです. 内容の正確性は保証しません. ライセンスは原文と同じく CC-By 3.0 とします. フィードバックは Issue への登録 , あるいは Kosei Moriyama (@cou929 または cou929 at gmail.com) へ直接お願いします. この和訳のリポジトリは こちら です.
この和訳について¶ この文章は Google JavaScript Style Guide を非公式に和訳したものです. 内容の正確性は保証しません. ライセンスは原文と同じく CC-By 3.0 とします. フィードバックは Issue への登録 , あるいは Kosei Moriyama (@cou929 または cou929 at gmail.com) へ直接お願いします. この和訳のリポジトリは こちら です.
こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。
11/7発売予定の書籍「ノンプログラマのためのJavaScriptはじめの一歩」のはじめにと1章が先行して技評のWebサイトで公開されました。 はじめに 1章 1章はイントロ的なところで、JavaScriptを学ぶ前にJavaScriptの動かし方やデバッグツールの使い方について解説しています。 また、本書籍の2章以降で解説するスライドショーのサンプルプログラムも1章で登場するため公開されています。次のようにボタンを押すと次の画像に行くというだけの、簡単なサンプルプログラムです。 {::nomarkdown} {:/nomarkdown} 技評のWebサイトからも実際に試すことができます。 JavaScriptのソースはこんなかんじです。全体で90行程度、コメントや空行を除くと40行程度です。 /** * 簡易スライドショー * * nextボタンを押したときに画像を切り替える簡単な *
人材の移動の激しいスタートアップ業界にいながらも殆どの従業員が辞めないことが話題となっている、ソーシャルコーディングサービスGithubのCEO、Tom Preston Werner氏が「イノベーションを起こすためのGithubの哲学」について先日のOpenCoSFというイベントで語った。 「イノベーションとは新しく何かをはじめることだ、たとえ他の人がそれをクレイジーだと思っていても」サンフランシスコはイノベーションを起こすには最高の場所だ。何か新しいことをすることはリスクだ。何が起こるかわからない。イノベーティブになるには勇気がいる。 他の人が「こんなもんクレイジーだ!」って言ったとしてもこれをやるぞという強い意思が必要だ。実際にスタートアップはとても高い確率で失敗する。でもサンフランシスコの文化ではたとえ失敗したとしてもまったく問題ないんだ。 実際にたくさんの起業家が失敗しているし、新
いまやWeb制作に欠かせなくなったJavaScript。でも、「JavaScriptはほとんど“アリモノ”で済ませている」という方も多いのでは? そこで、WebデザイナーやマークアップエンジニアなどのWeb制作者の方向けに、いま一番人気のJavaScriptライブラリー「jQuery」の基本を学べる特別レッスンをお届けします。題して、「40分で覚えるjQuery」。要点だけにぎゅっと絞って解説しますので、手を動かしながら今すぐjQueryを始めましょう。 【0分目:導入編】 jQueryのダウンロードと利用方法 jQueryのライブラリー本体(JavaScriptファイル)は公式サイトからダウンロードし、head要素などにscript要素を書いて読み込みます。
jQueryとは、JavaScriptのコーディングを強力に支援するライブラリです。 $('.semooh a').hover( function(){ $(this).text('ヌ?'); }, function(){ $(this).text('ヌー'); } );
はじめに スマホアプリの結合テストでは、スマホ特有の確認すべき点が数多くあります。 特に Android は端末の種類が多いですし、OSのカスタマイズもかなり自由度があるので思わぬバグが発生する可能性がかなり高いです。 ということで今回は 結合テストで確認したいチェック項目 をジャンルごとにまとめてみました。 端末 インストール先の違いによって動作しない処理がないか Android OS バージョン 2.2 (APIレベル9) より、アプリをSDカードにインストールできるようになりました。それによって動作しない処理が発生する可能性があります(例えば、SDカードにインストールされている状態では再起動やSDカードマウントを BroadcastReciever で受け取れないなど)。 SDカードのマウント・アンマウントで異常な処理が発生しないか Android はSDカードの有無によって保存先が
AppBank アプリ担当のラクイシです。 AppBank で以前公開された iPhone アプリ開発入門記事を見て、iPhone アプリを開発してみた方も多いのではないでしょうか? しかし、そこから一歩踏み込んでオリジナルのアプリをリリースしたという方は、ほとんどいないと思います。 オリジナルのアプリを完成させるためには、Xcodeに向き合う前にやるべきことがあります。それは、完成させるアプリの方向性を明確にすることです。 入社前は、個人でアプリ開発をしていた僕が、具体的な方法を紹介していきます! 1. アプリのアイデアを生み出す オリジナルのアプリといっても、独創的なアイデアが必要なわけではありません。 オリジナルのアプリの多くは、既に AppStore に並んでいるアプリに、ちょっと機能を追加したり、逆に機能を削ったものだからです。 日頃から iPhone アプリを触っていて、「この
ひげぽんさんの所をパクってテンプレートにして書いてみました。 練習問題をスキップしつつ、私も約半年でで読み終えました。とても楽しい日々を過ごすことができました。 SICPを読む過程で得たもの ・遅延評価とstream ・制約プログラミング、ロジックプログラミング、amb ・Emacs(Meadow)+gauche+Quackの組み合わせ便利 ・同じ事を表現するのに、抽象度を上げたり、下げたりできること。 ・手加減してあればLispのソースも追えるようになった。手加減していないのは駄目。 ・Lisp特有の、手続きを評価する→S式ができる→また評価する→S式ができる、という気持ち悪い再帰の存在。 ・SICP読み仲間ではないけどいろんなblogつながり。組み込みとFPGAだけでない、いろんな世界がある事をあらためて感じた。 SICPを読みはじめたときの動機を振り返る ・関数型言語について Lis
2012年9月に行われた札幌Ruby会議2012の基調講演の1つで、Rubyの生みの親のまつもとゆきひろさんが、最近あった面白いエピソードを混じえて“イノベーション”の本質について語っていました(44分の動画)。ポイントとなる部分をまとめてみました。まつもとさんの話はもちろん、統計的裏付けだとか学問的裏付けがある議論というものではありませんし、ご本人も楽しそうに話し、聴衆も楽しんでトークを聞くというゆるい感じのものでした。ただ、「イノベーションの本質は捉えがたい」というメッセージや、「だからあれこれ考えずにコードを書こう、われわれはコードを書くことにアイデンティティを感じているのだから、それこそがハッピーになる道だ」というメッセージは、参加していたRubyistたちの胸に響くものがあったのではないかと思います。 以下、口語文体のまま、ポイントとなる前半のトークをまとめてみました。トーク後半
id:cheesepie:20070131:1170172709 最近は、こういう風に JavaScript を勉強する人が増えていてとても嬉しいです ^^ id:cheesepie さん頑張ってください! で、ちょっと配列と連想配列の使いかたが違うようなので、エントリーを書こうと思いました。おせっかいだったらすみません>< ! やっぱり、このへんが JavaScript の難しいところのひとつなのだろうか。 ということで、 JavaScript の配列と連想配列の違い いってみよおー 連想配列とは JavaScript では連想配列は一番シンプルなオブジェクトのことである。つまり、すべてのオブジェクトは連想配列である。 以下のすべての連想配列はまったく同じものである。 // 1 var obj = { hoge: 'hoge' }; // 2 var obj = { 'hoge': 'h
JavaScriptの書籍はjQueryやサンプル中心のチップス本などを含めると、多数出ており、これから勉強したい人にとってはどれから読めばいいか迷うところだと思います。 今日はここ数年で出た書籍の中で初級者から脱中級者になるまでに読みたい書籍を、この順番で読めばステップアップできるという内容で紹介したいと思います。 STEP1. 初心者へのおすすめはダントツでこれ一択。 初心者向けの内容としてはこれがダントツでおすすめです。内容が易しく丁寧な上にサポートサイトで書籍の内容を動画で説明してくれています。 Amazon.co.jp: よくわかるJavaScriptの教科書: たにぐち まこと: 本 サポートサイトはこちら STEP2. 全体を把握するには十分なボリューム。脱初級者向けにはこの2冊。 2冊とも初級者にとっては少し厳しい内容になっていますが、この2冊が理解できれば後は作りまくる
ふと昔自分が書いたコードを眺めてました。 あるあるだと思うんですが、「ひどいなー」とか「今ならこうするなー」とか思ったりするわけです。 今日はそんなひどいコードたちを、自分への戒めという意味も込めて、正していこうと思います。どれも基本的なことばかりですが。 ちなみに、ここで挙げている昔のコードは、いずれもバグ予備軍的なコードだったり、ちょっとイケてなかったりするコードです。 そのコードが動く環境では期待通り動いてます。 本当にバグを見つけちゃったら、こんな感じでは書けませんね。 for 文の継続条件式におけるプロパティ参照 昔のコード: for (var i = 0; i < items.length; i++) { // ... } 今ならこう書く: for (var i = 0, length = items.length; i < length; i++) { // ... } Ja
プログラマというのは、道具に慣れることが、実力があがることにならないのですよね。だから、勉強せず業務経験だけだとレベルが低いままということになってしまう。 Javaを10年さわり続けて、Strutsを5年さわり続けても、それだけでは、与えられた画面を手際よく作成できるようになるだけで、たとえばStrutsすらよりよく使えるようになるわけではなかったりする。 Javaにしても、「volatileってなんですか?」という問いに、まあ知らないのはしかたないとしても、解説を見ながらですら答えられない可能性がある。 プログラムの反復生産は、プログラミング能力の向上にあまりつながらない。設定や記述に慣れるだけだ。そして、この「慣れ」というのには「難しいからそもそも実装を回避する」というようなものも含まれる。実力の向上は、作業ができるレベルで止まってしまう。 プログラマとしての実力をあげるための勉強が自
先日の2月3日で39歳になりました。社会人20年を振り返ると苦労の歴史でした。でも、それは誇らしいことでもあります。 今でこそ「できる人」というイメージが強いかもしれませんが、、駆け出しのころは全くできない子でした。 ということで、苦労話。タイトルがありきたりですが、でも難しいことなんであえてつけてみた。押し付ける気も全くないですけど、できるやつが何 後付でカッコつけてんだよ!とか、非論理的だなって言われると思います。それは否定しません。そんなことは承知の上で、以下 おやじのうんちくをたれます。 限界を超えた努力 初めてのプログラミングは10歳の時にBASICでプログラムです。なんか難しいこと簡単にやらせてみたい欲求があって、PCというのは難しいけど楽しいかもしれないと思った。その頃の「好き」のレベルはまだ淡い幻想です。 それ以来、社会人になるまでPCはゲーム機でしたが、社会人になってC言
クロージャとは クロージャは、言葉で説明するのが大変難しい概念です。 あなたは、自転車の乗り方を、口だけで説明できるでしょうか? あなたは、螺旋(らせん)の形を、言葉だけで説明できるでしょうか? ずばり、できないでしょう。 しかし、自転車に乗ることはできますし、針金で螺旋の形を作ることはできるでしょう。 「クロージャ」もこれと同じです。 だから、Wikipediaのこんな解説を見ても落ち込まないでください。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決する関数のことである。 理解できないですよね? 私もそうでした。 クロージャを既に知っている人にしか、この文章は理解できないでしょう。 クロージャを作るのは難しくない しかし、説明するのは難しくても、作るのは意外と簡単。それが
はじめに JavaScriptでは関数もオブジェクトです。このことはよく理解されていると思います。関数とメソッドとの明確な違いはなく、どちらも関数オブジェクトである、というところまではよいのですが、関数コールとメソッドコールの違い、あるいはその仕組みは正確に理解されているでしょうか。先日、職場の後輩に問題を出したところ正確に答えられえなかったので、いまさら?と思われるかも知れませんが、関数コールの仕組みを解説します。 関数とメソッド JavaScriptでは関数とメソッドには本質的な違いはありません。オブジェクトのプロパティとして定義される関数を便宜的にメソッドと呼んでいるだけです。parseInt()などのグローバル関数もグローバルオブジェクトのプロパティであり、関数の中でローカルに定義した関数も概念的にはActivation Objectのプロパティなので基本的には全ての関数はメソッド
Web 開発や拡張機能開発で JavaScript のコードを書いていると、誰もが一度は次のようなことで悩むかと思います。 ブロックスコープと名前空間 (グローバル変数汚染の回避) 読み書きしやすくデバッグしやすいコードスタイル コールバック関数と this オブジェクトの取り扱い デバッグ方法とデバッグ支援モジュール 非同期処理の書き方 いずれも解決方法は人によって様々で、これが常にベストと言えるものがなさそうですが、私なりにそれぞれ検討したことなどを書いてみようかと思います。もっと良い方法があるとか色々皆さんのご意見やツッコミをいただければ幸いです。 JavaScript では名前空間は言語仕様でサポートされておらず、ライブラリや拡張機能などのコードを書くときにはグローバル変数の使用を最小限に抑える必要があります。先日の Mozilla 勉強会@東京 3rd でも佐藤さんと守山さんの発
JavaScript チュートリアル 初級編 JavaScript の基礎 JavaScript の第一歩 JavaScript の構成要素 JavaScript オブジェクト入門 JavaScript ガイド 入門編 文法とデータ型 制御フローとエラー処理 ループとイテレーター 関数 式と演算子 数と日付 テキスト処理 正規表現 インデックス付きコレクション キー付きコレクション オブジェクトを利用する Using classes プロミスの使用 JavaScript 型付き配列 イテレーターとジェネレーター メタプログラミング JavaScript モジュール 中級編 クライアントサイド JavaScript フレームワーク クライアントサイド Web API Language overview JavaScript のデータ構造 等値比較と同一性 プロパティの列挙可能性と所有権 クロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く