初心者が知るべきJavaScriptの魅力はたった2つ!

      2016/03/25

a

JavaScriptの魅力は2つあります。

1. 構文の魅力
2. 動作するプラットフォームの魅力

1の構文の魅力は、コードを短く書けるとか、分かりやすく書けるとか、簡単に書けるとか、柔軟な構造を作れる等の機能のことです。JavaScriptの場合、プロトタイプ型オブジェクト指向関数が第一級オブジェクトである等の構文的特徴があります。

2の動作するプラットフォームの魅力は、JavaScriptがどこで動くかのことです。

JavaScriptは現在最も多くの実行環境を持つ言語と言っても過言ではないと言えます。

JavaScriptは当初PCのブラウザ上で動く言語として作られましたが、その後、Windowsのマクロ実行環境であるWSH(Windows Scripting Host)等が出てきて、現在だとスマホブラウザで動くのはもちろんのこと、サーバーサイドでJavaScriptを動かすことが出来るNode.js、JavaScriptでスマホネイティブ開発の出来るTitanium Mobileなどがあります。もちろん、その他にもたくさんの環境で動かすことが出来ます。

それでは、
1. 構文の魅力
2. 動作するプラットフォームの魅力
について、詳しく考えていきましょう!

1. 構文の魅力

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

プロトタイプ型オブジェクト指向はJavaやRubyのようなクラス型オブジェクト指向とはオブジェクトのつくり方が異なります。
以下のサンプルコードではゲームのプレイヤーオブジェクトを作成しています。

プロトタイプ型オブジェクト指向言語のすごい所は、実行時にオブジェクトのメンバーを追加できることです。
例えば、プレイヤーのヒットポイントを保存する必要があったら、あとからメンバ変数(フィールド、プロパティのようなもの)を実行時に追加することができます。
上記のコードの続きに以下のようなコードを書くことができます。

JavaやC#の場合、クラス定義時にメンバ変数(フィールド、プロパティ)は定義しなければいけませんが、JavaScriptの場合、オブジェクトをインスタンス化した後にプロパティを追加することができます。

関数が第一級オブジェクト

JavaScriptでは関数を変数に格納して受け渡すことができます。受け取った変数に格納された関数を実行することができます。これを高階関数と言います。

実行結果は、
func1を実行します。
func1だお!
func1を実行しました。
とコンソール出力されます。

同じような処理の流れのコードが多くて、その一部だけを個別のロジックにしたい場合などには高階関数を使うとうまくいきます。高階関数をサポートしていないオブジェクト指向言語の場合、このような場合、インターフェースを実装したクラスを使ったStrategyパターンというやり方で実装します。高階関数があれば、わざわざインターフェースを実装したクラスを作る必要がないのでより便利です。

JavaでStrategyパターンを用いて同じことをしているコード例です。

JavaScriptで数行のものがJavaだとこれほど長くなってしまいます。っといってもJava8からはラムダ式がサポートされたのでJavaScriptに近い書き方が出来るようになっています。

連想配列(ハッシュ)とオブジェクトが同じ

JavaScriptでは連想配列(ハッシュ)とオブジェクトは同じものです。
オブジェクトをハッシュのように操作することもできるし、ハッシュをオブジェクトのように操作することもできます。

これは非常に便利で、RubyやC#等のコードを書いている時もJavaScriptを書いてる時のくせでハッシュのプロパティを参照するコードを書いて文法エラーになることがよくあります。それくらい便利で素晴らしい記法だと思います。

2. 動作するプラットフォームの魅力

JavaScriptは多数のプラットフォームで動きますが、他の言語と比較してどうなのか検証してみましょう!

言語/Platform PC ブラウザ Webサーバ スマホ
JavaScript WSH上 全ブラウザ node.js等 Titunium等
Java JVM × Tomcat等 Androidのみ
Ruby rubyインタプリタ上 × Passenger等 RubyMotion
C# .NET Framework上 × IIS等 WindowsPhone, UnityやMonoでiOSとAndroid

こうして比較してみると、JavaScriptだけ際立って多数プラットフォームで動くというわけでもないようです。が、JavaScriptだけがブラウザ上で動くという点は大きな魅力だと思います。もちろんAltJSと言われるCoffeeScript、TypeScript、DartなどのようなコンパイルするとJavaScriptのソースコードが出力される言語はありますが、直にブラウザ上で動く言語は今の所、JavaScriptだけなのでオンリーワンの魅力があることは間違いありません。

さぁJavaScriptを学ぼう!

そんなわけでJavaScriptを学ぶと多くのプラットフォームで動作するプログラムを作ることができます。
また、JavaScriptはプロトタイプ型オブジェクト指向言語という珍しいタイプの言語なので、他の言語では学べない手法が身に付きます。
なので、ぜひ学んでみることをお勧めします!

プログラミング初心者におすすめのサービス
1. 自宅で学びたい派なら

「就職保証付き」オンライン就職予備校をおすすめします。Javaエンジニアコースでは就職保証がついているのでプログラマーとして就職したい方にはぴったりです。Javaエンジニアの求人ってめっちゃ多いし、求められる技術レベルもそこまで高くないのでちゃんとした教育プログラムなら就職保証できるだろうなとJavaエンジニア経験者の私も思います。

2. 講師から直接学びたい派なら

ストリートアカデミーがおすすめです。こちらもユーザー登録無料で参加したい講座だけ受けられるますし、料金も良心的なので良いと思います。1000円の講座もありました!

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはDODAというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『DODA』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、DODAは未経験者を支援し転職を成功させています。未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

フリーランスになりたい人には『ギークスジョブ』

フリーランスエンジニアになるには人脈が必要と思われがちですが、ギークスジョブに登録して希望条件を伝えれば、自分に合った案件を紹介してもらえるんですよ!思ってるより全然簡単にフリーランスってなれるもんなんです。

東京・大阪・名古屋・福岡の案件を紹介してもらえます。

 - ITエンジニア成功術