niwatakoツイートJavaScriptをなめていた私が勉強しなおした結果、色々驚愕の事実が発覚したお話。JavaScriptをご存じの方には当然の内容かもしれません。むかしむかし私にとってJavaScriptといえば、高校生時代(10年ぐらい前...)にブログアフィリエイトをするために、当時流行っていたホバーウィンドウで広告を目立たせるなどといった浅はかな用途に、何処かからコードをコピペしてくるシロモノでした。いうわけでJavaScriptといえば「コピペすれば使える」「プログラマじゃなくても使える簡易的な言語」「広告を表示するために利用される鬱陶しい奴」というイメージが正直な所でした。進化し、利用シーンが広がり、エンジニアとして無視できなくなりつつあるJavaScriptしかしながらその10年前から現在までに、広告や無駄な装飾に多用され有益な使い方と言えばアクセス解析かな、的印象だったJavaScriptは、ひょっとするとあの頃からJavaScriptが一番目ざましく進化したんじゃないかと思うぐらい、WEB業界の中心で発展を遂げてきたように思われます。HTML5とスマートフォンの登場でWEB製作には欠かせない存在となり、さらにフロントエンドにとどまらずコマンドラインやサーバーサイドまでカバーしてWEB業界の中心あるいはIT業界の中心にいらっしゃるJavaScript様をそろそろきちんと勉強しなければ、と思っていたところへ、ちょうど仕事でJavaScriptを使うことになったので、年末年始のお休みを使って勉強してみました。JavaScript本格入門を読んでみたよどうやって勉強するかはJavaScriptを専門言語として勉強している人に聞くのが一番。理解しやすいように配慮されており、JavaScriptの場合はこんな仕様なんだ、アレはこう表現するんだ、というのがとてもわかりやすかったように思います。最終的にAjax技術を実装するのに十分な知識を修得することを目標としています。最終的にAjax技術を実装するのに十分な知識を修得することを目標としています。2015無知は恐ろしい。付けて宣言されても、スコープ先頭から有効なんですねー。関数の最初に変数宣言しまくってるコードが存在する理由を理解した。2015最初に全部var付けて宣言しておけば、グローバルとローカル間違えないですもんね。3.これで終わったと思うな、制御構文の恐怖!!if文やwhile文はスコープにならないんだって。2015あばばばば他の言語やってると、for文の中で宣言した変数は、for文抜けたら無効だと思いますよね!JavaScriptだと、for抜けてからも値が変数に残っている(というか変数が残っている)んです!forの前に同じ名前の変数があったら、そいつの中身が変わっちゃうんです!過去のコードが怖くなる話だ!!(/ω・\)最難関、プロトタイプ継承JavaScriptはオブジェクト指向言語です。多くのオブジェクト指向言語でつきものである”クラス”は存在しません。"JavaScriptはれっきとしたオブジェクト指向言語です。2015クラスがないオブジェクト指向ってどういうことでしょう。2015なんと、クラスがないのは意図された仕組みだったようです。いうこと...!?どうしてクラスを捨てたの!!システムがある程度まで成長すると、全体として硬直化が起きて、特に基本的なクラス群は相互の関連に縛られ、機能追加が困難となる。2015クラスベースのオブジェクト指向で継承を使ってプログラムを作ると、たくさんのクラスに継承されている根幹のクラスを仕様変更するのは影響が大きくなりすぎてしまい、そうやすやすと機能追加できなくなる。そこで、継承した子供の方から、継承元を拡張できるべきではないのか、という発想でJavaScriptが採用したのが、プロトタイプベースのオブジェクト指向だそうです。演算子って何者、何してるのこの子。演算子って何者、何してるのこの子。2015オブジェクト指向に始まりプロトタイプチェーンなど、この辺を理解するのが凄く難しいのです。わけわかめなプロトタイプチェーン、果てはタイムラインにこんなコラージュが届くに至りました。プロトタイプ継承難しい!!ちなみに、プロトタイプ継承を使いこなす色々なパターンはオブジェクト指向JavaScriptのほうが多く例が載っているかもしれません。ひと通り学んだら、上記2冊も参考にされると理解が深まる(場合によっては謎が深まる可能性もありますが)と思います!!あとはこちらのスライドがわかりやすいという情報を頂きました。@niwatakoJSに少し慣れたらこのスライドを読むとオブジェクト指向について分かりやすいと思います。2015ひと通り勉強してからこのスライドを見ると、学んだことがとても良く整理されました。使うよと言うと、知ったかぶりだ!と意味不明な事を言われたりします。話は禁句に近しい程、難しい話になり兼ねないです(上手に話出来る人は別だけれど)。入らないと辛い部分があるのではないかと思います。戻ってくるなどをした方が良いと思います。するのを忘れている気がします(あれだと当然ですよね...)。AM遅くなりましたがご指摘の点について修正しました、ありがとうございます。コメントをキャンセルメールアドレスが公開されることはありません。