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

      2017/02/02

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

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

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

2の動作するプラットフォームの魅力は、JavaScriptを動かせる実行環境の多さです。

JavaScriptは現在最も多くの実行環境を持つ言語と言っても過言ではありません。

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

ここで挙げたのは一例であり、この他にもJavaScriptが動く環境はたくさんあります。

それでは、
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等 PhoneGap, 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. 講師から対面で学びたい派なら

プログラマカレッジをおすすめします。ProEngineerという転職エージェントが運営しているプログラミングスクールです。20代限定なんですが、無料で受講できて、修了後、就職支援もしてくれるんです。最高過ぎですよ、これ!!就職の紹介料を企業からもらえるのでスクールを無料にできるんでしょうね。すばらしいシステムだと思います!

30代以上の方には

プログラマカレッジは20代限定なので30代以上の方にはWebCamp Proをおすすめします。受講料の返金保証がついているし、毎日11時〜23時まで通い放題なのでとてもいいと思います!

2. 自宅で学びたい派なら

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

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

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

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

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

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

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

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

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

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

エンジニア未経験の方や地方在住の方には『ワークポート』

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

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 技術