Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
      
  
  
  問題です。 問題: 呼び出すたびに、1,2,3,...を返すような関数 f( )を定義せよ。 f(); // 1 f(); // 2 f(); // 3 この問題、解けますでしょうか? 普通の関数では、できないと思います。 しかし「クロージャ」というのを使えば、このようなことができます。 クロージャって何だ? 「クロージャ」という言葉を、プログラムの本やサイトで目にすることがありますよね。 私が最初に見たのは続・初めてのPerl 改訂版(アルパカ本)でした。 まったく理解できませんでした。 その後、404 Blog not foundやnaoyaさんのブログなどで「クロージャ」という単語を目にしました。 やはり、まったく分かりませんでした。 とどめの一撃はWikipediaの解説記事。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境
(注記:7/15、いただいた翻訳フィードバックを元に記事を修正いたしました。) 子供の頃、私の興味は互いに関係性のない様々な分野に及んでいました。数学も歴史も大好きでした。 ルネッサンスマン 、つまり 博学者 と言う、複数の分野に秀でた人になりたいと思っていました。これはとても難しい課題で、私は突如として、器用貧乏な人になってしまう危機に直面したのです。 私は特定の分野に特化しなくては、と考え始めました。そうすればたとえルネッサンスマンにはなれなくても、少なくとも、器用貧乏にならなくても済むと思ったのです。どうしたらソフトウェア開発をするのに必要な広い知識を保ちながら、1つの分野で専門性を高めることができるのでしょうか。 この記事では、過去5年間、私が良いJavaScript開発者になるために使ったテクニックとリソースの概要をお伝えしようと思います。 最近の多くのWeb開発者は、ある共通の
      
  こんにちは、ほそ道です。 今回はビルドツール・モジュールローダ・altJS(JSコンパイラ)を組み合わせてさらにテストコードのおくのほそ道に入り込んでいきます。 今回Gulp + Webpack + Karma + Jasmine + ES6を使用しますが、 GruntだったりBrowserifyだったりMochaだったりCoffeescriptだったりに置き換えても基本的な考え方は近しい感じになるかと思います。 あとはここにSPAフレームワークとかを組み合わせればいよいよモダンなテストコードになっていきますね。 目次はこちら 今回解決すること・設計方針 Webpackとテストコードを組み合わせる。なんかバンドルしたりごにょごにょやってるどこにテストを挟むのか?を解決する。 ソースコードもテストコードもES6で書く。babelないしはaltJSのコンパイルごにょごにょやってるどこにテストを
      
  JavaScript : eval の代わりに インラインSCRIPTを使う というエントリ。 最新のjQueryに実装されたようで、単純に危険という認識を持つのではなく、 正しく使いこなす(使う場面をしっかりと設計に組み込む)というのが世の流れなんでしょうね。 さて、このエントリに関連して…。 CSPでインラインスクリプトを拒否されている場合、 Blob化してリモートスクリプトとして実行できるかも(未検証)。 こんな感じ。 var URL = window.URL || null, head, script, blob; if(!URL) throw "not supported objectUrl"; var javascript_src = 'console.log("hello blob object !")'; head = document.getElementsByTagNa
      
  JavaScriptで配列から要素を削除する方法まとめ公開日: 2015-02-13この記事では、JavaScriptを使って、文字列の先頭と末尾、指定位置など、様々な条件を付けて配列から要素を削除する方法を紹介します。目次サンプルコードちょこっとメモサンプルコード
      
  JavaScriptには、「部分適用」や「カリー化」といった考え方が存在します。 ココらへんは定義がわかりづらかったり、筆者自身も完璧に理解できているとは言いがたい部分もありますので、ざっくりと全体像でもお伝えできればと思います。 関数の適用、部分適用、カリー化の順番でお話していきます。 関数の適用とは そもそも、関数プログラミング言語においては、関数は「呼び出されるもの」というより、「適用されるもの」と捉えるほうが正確です。JavaScriptにはFunction.prototype.apply()メソッドがあります。 つまり、関数の呼び出しはapply()メソッドの糖衣構文(シンタックスシュガー)である、ということです。実際にapply()を使ってみます。 一つ目の引数には、関数の内部でthisに束縛されるオブジェクト、 二つ目の引数には、引数の配列で、関数の内部で使用したい値の配列を
      
  右クリック禁止とコピー禁止のCSSを紹介します。これでブログの記事をパクられた。画像を勝手に利用された、というのが多少防げる。頑張って書いた記事や画像がパクられたくないって人は参考までにどうぞ。抜け道は多いので本当に多少レベル CSSでテキストのマウスドラッグでの選択とコピー禁止 CSSのエリアに以下内容を記述することで、テキスト選択とマウスのドラッグを禁止してコピーを防止することが出来ます。 body{ user-select:none; -moz-user-select:none; -webkit-user-select:none; -webkit-user-drag:none; -khtml-user-select:none; -khtml-user-drag:none; } これはFirefoxとsafariとGoogleChromeで有効で、あの憎きIEには通用しないので別の対処
      
  6/25(木)に21cafeにて開催されたグッドパッチ協賛のイベント「JSオジサン #5」のレポートをお届けします。 JSオジサンとは? JSオジサンはJavaScriptにまつわるLT(ライトニングトーク)を、気軽にアルコールも入れつつ、普段の勉強会とは一味違う感じで楽しむイベントです。 LTの内容はオジサンらしく濃い話ばかりで、普段の仕事への活用の意味でもネタの意味でも好評をいただいております。 こんな名前のイベントですが若い方はもちろんのこと、多くの女性にも参加・登壇いただいています。 昨年3月に行われた第1回から数えて、ついに第5回目。今回も定員80名のところに200名あまりから参加希望をいただきありがとうございました! 残念ながら参加できなかった方も、この記事をで少しでも雰囲気がつたわればと思います。 LT紹介 それでは、各登壇者さんたちがどのようなLTをされたのかを紹介していき
      
  最も誤解されているプログラム言語として名高いJavaScriptの誤解を解きつつ、中級者(プログラム開発においてある程度戦力として計算できる)になるためには何から抑えればいんだろう、というのを考えた記録とリンク集です。 考えたというか、自分が勉強中です。 ※追記 KENJUさんが完全に上位互換な内容の投稿を公開されていましたので紹介。 中上級者になるためのJavaScript【知識編】 対象 何かしらのプログラム言語は書ける 多少JavaScriptを書いたことはあれど、言語の仕様はよく知らない レベルの基準 中級ってどんな人なのさ? JavaScriptの業務スキルレベル 判別表 (5段階) あなたはJavaScriptを知らない JavaScriptでよく使われるクロージャやプロトタイプの考え方を理解すること 代表的なライブラリ(jQueryとか)が使えること、最近ならNode.jsな
      
  【News】電子書籍化しました! Gitbook Read Online Download PDF Download EPUB Download MOBI この記事は、敷居が低いもののなかなか中上級に進めず困っているJavaScript学習者の方を対象としています。よりJavaScriptに対する理解を深める際に気を付けるべき事柄、知っておくべきキーワードの提供をゴールとします。 「クロージャーについてもっと知りたい!」「カリー化なるものがあるのか、知らなかった!」といったきっかけになれば幸いです。 JavaScriptは書ける人が多く、ベストプラクティスが整ってあるものの、逆に間口が広すぎてコピペで済ませてしまったり(場合によってはしょうがないことですが)基礎を学ぶ機会がなくなんとなく現場に出てしまったりすることがありますので、ぜひこの機会にJavaScriptを復習してみてください。
      
  JavaScriptは割と自由な言語で、行末にセミコロンがなくとも動作したり、varによる変数宣言をしなくとも使えたりします。とはいえ、動くから良いという訳ではありません。意図しない動作を防ぐため、さらに多人数での開発になればコードの品質を維持するためにもコーディング規約に沿った書き方が求められます。 他のプログラミング言語と同様、JavaScriptにおいてもコーディング規約が幾つか存在します。どれを取り入れるかは対象のアプリの性質、プロジェクトの特性やチームメンバーのスキルなどによりますが、参考になることは間違いないでしょう。必要に応じてカスタマイズするなどして、上手に取り入れてみてください。 Google JavaScript Style Guide Google製のJavaScriptスタイルガイドです。和訳版がこちらにあります。執筆時において、和訳版はバージョン2.72、本家は2
      
  qiita.com を拝見してました。心当たりがあるのでメモ程度に。 JavaScript の Array#sort は仕様的に非安定ソートで、実際もそうです。実装により異なる結果が得られます。 より具体的には、 [...].sort(function(a, b) { return 0; }); と評価関数の中で return 0 してしまうと要素の順番は保証されません。 return 0 を使わずに記述してください。 この問題については、 http://ofb.net/~sethml/is-sort-stable.html を参照していただくと学びがあります。 以下は僕のツイートを Array#sort で検索した時にでてくる駄文です。見事にいい感じに苦しんでますね。みなさんは気をつけてください。😃 モジュールの依存関係を解決する部分のロジックは8回ほど書き直しました。確かにあれ全く簡
最近Webアプリケーションのフロントエンドの知識が足りていない!と思いJavaScriptを意識して触るようにしてきました。 基本的な文法や簡単なAPIは押さえたり、Angularでアプリ作ってみたりして、徐々に身に付いてきたかなーと思っています。ですが、未だに初心者の域を出ないかな・・・と。 そんな訳で優秀で信頼できる後輩に「何か良い本とか知らない?」と聞いてみたところGood Partsを教えてもらいました。 [tmkm-amazon]4873113911[/tmkm-amazon] 古い本なのでそこだけ微妙らしいですが、良い本みたいです。 この本、Good Partsと言うよりはBad Partsの方が合っている気がしています。なぜかというと、基本方針が「JavaScriptは良い機能もあるけど、悪い機能が多いので、悪い部分は使わないようにしよう!」というものだからです。 何はともあ
JavaScriptの現状を支えるエコシステム群を軽く紹介して、モジュールについて少し掘り下げた勉強会
こんにちは会員事業部の丸山@h13i32maruです。 最近のWebフロントエンドの変化は非常に激しく、ちょっと目を離した間にどんどん新しいものが出てきますよね。そんな激しい変化の一つとしてES6という次期JavaScriptの仕様があります。このES6は現在策定中で、執筆時点ではDraft Rev31が公開されています。 JavaScriptはECMAScript(ECMA262)という仕様をもとに実装されています。 現在のモダンなWebブラウザはECMAScript 5.1th EditionをもとにしたJavaScript実行エンジンを搭載しています。 そして次のバージョンであるECMAScript 6th Editionが現在策定中で、略称としてES6という名前がよく使われます。 今回は、他の言語にはあってJavaScriptにも欲しいなと思っていた機能や、JavaScriptでよ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く