アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

posted by fanblog

JavaScript 始めました。

学習書籍は、こちら。




JavaEEの学習書籍としてお世話になった山田さんの著書で、個人的には、とても読みやすく相性が良い。
さらっと何となくJavaScriptができればいいな。という人には、他の薄い本がよいと思うが、
以下に書くような、私と同じような感覚で「JavaScriptって何?」という人で、しっかり学びたい。
Ajax!Ajax!な人は、是非お勧め。細かい入門知識から、本格的に学ぶことができる。


今までの私自身のjavaScriptの知識はと言うと、なんとなく使った事はあるけど、


    • 使うときは基本的にサイトのコピペ。それ以上の事は出来ない。
    • JavaScriptと言うからには、Javaの仲間?
    • クライアントサイドだよね。負担は操作者のPCにかかるやつ。

    といった程度。Javaは多少書けるけど、なんかしっくりこない感じでした。
    しっくりこなかった理由は、

    1. 基本的な書き方はjavaっぽいが、ブラウザ上で動かすブラウザオブジェクトの概念がわからない。
    2. Javaで言う文字列(String)でも、数値(int)でも、「var」という型で宣言していて、どう管理しているかわからなかった。
    3. オブジェクト指向ではないと書いてあったり、オブジェクト指向だと書いてあったり、処理の受け渡しがピンとこなかった。



    学習を進めていく事で、(まだ途中だけど)上記に上げた3点は何となく理解した。


    階層構造を意識する必要がある

    window関数の配下に、色んな関数があり、
    ブラウザが開かれた時に、自作なり、用意されたオブジェクトやメソッドを読み込んで、
    使用できる状態にする。

    その用意したオブジェクト(メソッド)の関数名を、HTMLのタグに紐づけて
    クリックした時なり、ドラッグした時なりに動作するようにメソッド内にプログラミングしていけばよいと。
    一般的な文字列の宣言の仕方、if,forの書き方は他言語とさほど変わらないが、
    このwindow関数などのブラウザオブジェクトに関してはがっつり学習する必要があるかな。

    そして学習書籍を読み進めていると、
    この後、ブラウザオブジェクトより、DOMの方が重要だと知る。
    HTML自体の階層構造の宣言がとても大事で、自分で階層構造を宣言したり、
    子要素を丸ごと入れ替えたりといった操作ができるようになり、
    クライアントサイドで動くアプリケーションを構築するのに重要な要素だと学ぶ。

    DOMについては、一度別の機会にまとめる必要がある。

    変数の宣言は全てvar、関数の定義はfunction

    ひとまず、こう覚えた。厳密には違うような気もするけど。
    文字でも数字でも、配列リテラルでも全部var!
    Javaだと、String(文字列型)に数字を入れると、エラーになったりしますが、
    JavaScriptではそのまま上書きされます。
    数字に文字列を加算しようが、javaScript先生がうまいことやろうとします。
    これは楽!と捉えるべきかもしれませんが、正直気持ち悪いし、
    中身がどうなっているのか把握しづらいので厄介です…。

    初めての言語学習がJSだよ。と言う人は、
    Javaに入った時に、いちいちエラーが出てうざい!といった感じでしょうか。

    結構、概念的にはJavaと似ている部分もあるのですが、こういった変数の部分や、
    宣言の仕方などが微妙に違うので、もやもやした感じがします。


    JavaScriptはプロトタイプ型オブジェクト指向

    上記で、もやっていましたが、こっちも更にもやもや。
    Java自体は、クラス型オブジェクト指向。

    じゃあ、何が違うのかと言うと、
    Javaはクラスを定義して、実処理ではインスタンス化(実体化)して処理を行ったりします。
    JavaScriptもそれは同じなのですが、

    JavaScriptはそのクラス(プロトタイプ)にないメソッドをインスタンス自身に処理の中で追加できる

    便利なように見えますが、同じクラス(プロトタイプ)から派生したインスタンスA、Bにおいても、
    途中で処理の構文自体が別物になっている可能性もあり、動きが保証されないのが怖い。


    継承元を切り替える事が出来る。

    Javaでは、継承と言って自分にないメソッドや変数を親クラスを継承する事によって、
    あたかも自分のクラスに定義されている可能ような振舞ができるのですが、JavaScriptでもできます。
    しかも処理の途中で、その親を変える事が出来る。。。
    これも動きを冗長化できて便利な感じがする一方、親クラスが変わると言う事は
    そのクラス(プロトタイプ)自身の持っている変数やメソッドも変わるので、
    またまた動きを予測するのが難しくなる。。。

    ここまでの学習で…

    まずは一冊読みあげたいので、ちょっと分からないところはスル—していますが、
    Javaに比べると、JavaScript自身が「おいらが、うまいことやってあげるよ」といった感じなので、
    いいのか、悪いのか…。
    そして、本格的な実装をしようとすると、結構概念がややこしい。
    冗長化されている分、不可解な動きを思想であり、Javaのようなクラスライクな設計もできるようだが、
    変数や関数を上手いことやって無理くりやっているようにしか見えないな。。。

    正直、ブログのデザインを上手いことやるくらいだったら、上記に述べたようなところでは、
    ブラウザオブジェクトだけしっかり覚えて、単発単発でスクリプトを埋め込んでいったら、それで終わりな話。
    ガチムチな実装をしても、うまい事コードを組まないとメモリばかり食ってなかなか表示されない。
    なんてことにもなりかねません。

    キー操作で画像を動かして、動作で得点が加算され、結果をサーバにデータ送信。

    なんてところまでスムーズにできるようになれば、
    サーバサイドのJavaとクライアントサイドのJavaScriptで連携したAjaxアプリケーションを作れそうですかね。

    まだまだアプリケーションプログラマの道はほど遠い。

コメント

お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのコメント

Good web site you have got here.. It’s hard to find quality writing like yours these days.
slotmachinesitecom |2023年03月26日(Sun) 15:53
Thank you for sharing such valuable and helpful information and knowledge.
betmantotoorg |2023年03月26日(Sun) 15:52
I must say you’ve done a very good job with this
sportstototvcom |2023年03月26日(Sun) 15:52
Your web site is great. I was extremely touched by this post.
toto365pro |2023年03月26日(Sun) 15:51
Your article is extremely attractive and interesting, hopefully more people will know and visit your blog.
스포츠토토 |2023年03月26日(Sun) 15:51
Thank you for the good writeup. It in fact was a amusement account it.
Look advanced to far added agreeable from you! By the way, how could we communicate?
Shaun |2021年04月18日(Sun) 11:44
buy hydroxychloroquine online
Maisie |2021年04月05日(Mon) 17:55
buy vidalista
Christena |2021年03月01日(Mon) 02:52
long term use of dapoxetine
Laverne |2021年02月17日(Wed) 13:35
generic tadalafil australia
Royal |2021年02月07日(Sun) 00:07
canadian pharmacy generic cialis
Winston |2021年01月28日(Thu) 14:59
is hydroxychloroquine banned
Debbra |2021年01月01日(Fri) 01:47
generic vidalista safety
Ciara |2020年12月29日(Tue) 08:22
online cialis order
Guy |2020年12月22日(Tue) 06:59
for best results with amoxicillin
Ashlee |2020年12月21日(Mon) 11:55
tadalafil india reviews
Delia |2020年12月21日(Mon) 02:56
normal dose tadalafil for ed
Chau |2020年12月20日(Sun) 21:50
pharmacies that don't require prescriptions
Elvia |2020年12月17日(Thu) 21:48
Historically, a modified savvy of the physiologic mechanism of erections controlled the handling of ED
to vacuum-chokepoint devices, corrective implants, intracavernosal
injections, and intraurethral suppositories.4 Since its advent,
the grade of agents known as type-5 phosphodiesterase (PDE5) inhibitors has revolutionized the management
of ED. PDE5 inhibitors bear become the first-line of reasoning
therapy for ED, as recommended by the American Urological Connexion (AUA) and
the European Affiliation of Urogenital medicine
Stephan |2020年10月10日(Sat) 23:59
Yesterday, while I was at work, my cousin stole my
iPad and tested to see if it can survive a forty foot drop, just so she can be a
youtube sensation. My iPad is now destroyed and she has 83 views.
I know this is totally off topic but I had to share it with someone!
Roseann |2020年10月09日(Fri) 01:52
Haley |2020年09月23日(Wed) 23:04
sildenafil coupons 100mg
Jodi |2020年09月19日(Sat) 12:57
azithromycin 500mg
Rebecca |2020年09月02日(Wed) 03:20
cialis canada
Abbey |2020年08月15日(Sat) 20:13
buy hydroxychloroquine online uk
Ilene |2020年08月14日(Fri) 10:12
buy ed pills
Dinah |2020年07月20日(Mon) 14:56
buy hydroxychloroquine online uk
Angie |2020年05月29日(Fri) 03:57
generic cialis
Alda |2020年04月10日(Fri) 09:50
hedgehogさん

はじめまして。コメントありがとうございます!
資格取得に向けて主に頑張っていたのは、去年で、
今はどちらかというと技術習得に力を入れています!

刺激になるという言葉をいただくのが、何よりの私自身へのいい刺激になります。
コメントは大歓迎ですので是非ともよろしくお願いします!

終わりがない業界というのは、たしかにそうですね。
それでも一通り身に付ければ、ある程度はやっていける内容もあるかと思います。
常に最先端というのも難しいかと思いますので、
安定したスキルと、少し最先端の技術を追っていけたらいいなと思います。
shade|2014年08月25日(Mon) 08:34
初めてコメントさせて頂きます、hedgehogと申します。
1週間ほど前にshadeさんのブログを発見し拝見しておりました。
とても勉強熱心で資格取得に向けて頑張っておられるようで
私自身とてもよい刺激になり「負けていられないな!!」という気持ちになりました。

これからちょくちょく
拝見してはコメントしていくかもしれません。
勉強しても勉強しても終わりのない業界ですが
お互いに頑張れたらよいですねb
hedgehog|2014年08月24日(Sun) 19:13
×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: