さぁ、始めよう。

目次

オブジェクト

クラスとオブジェクト

  1. Stringオブジェクト
  2. Dateオブジェクト
  3. Mathオブジェクト
  4. Windowオブジェクト
  5. Arrayオブジェクト
  6. Numberオブジェクト
  7. Historyオブジェクト
  8. Locationオブジェクト
  9. Documentオブジェクト
  10. Screenオブジェクト
  11. Navigatorオブジェクト

JavaScriptの歴史

1995年に誕生。当初はLiveScriptという名前でしたが、人気のJava言語にあやかり、のちにJavaScriptと改名されました。

当初は自己満足でウェブサイトの見栄えを飾り立てるために好んで使われました。

しかし、プログラマが本気で取り組むほどの価値はない、低俗なスクリプトというのが当時の評価でした。

黎明期には、InternetExplorer と Netscape Navigator がブラウザのシェア争いのため、各々独自の拡張を行ったため、ブラウザ間の互換性が非常に低いものとなってしまいました。さらには、セキュリティ問題が多く発生し、次第に人気が伸び悩むようになっていきました。

ところが、その後、GoogleMapに代表される非同期通信を使った高機能なAjaxウェブアプリが誕生し一躍注目されることとなります。GoogleMapがJavaScriptの汚名を返上したといっても過言ではないでしょう。

その後、ECMAによる標準化が進んだことや、ライブラリが充実したことも伴って、ブラウザ間の互換性問題も容認できるほどに解消し再び脚光を浴びることになりました。不遇の時代を経て、再び表舞台に返り咲いた奇跡の言語なのです。

JavaScriptは簡単か?

『JavaScriptは簡単だ』などと言う言葉を信じてはいけません。そう思われている節がありますが、これはとんでもない勘違いです。

確かにブラウザさえあればすぐに実行できるという意味ではお手軽には違いありません。しかし、「お手軽=簡単」と決めつけると痛い目に遭うでしょう。

ウェブ上にはJavaScriptに関する資料が山ほどありますが、それらのほとんどは文法のリファレンスに終始しています。スコープのことに関して触れているものはほとんど見当たりません。

JavaScriptの言語特性

  • インタプリタ型の言語である(最近のウェブブラウザはJITコンパイラを備えており半インタプリタ型、あるいはハイブリッド型とも言えなくもない)
  • 宣言時に変数の型を指定する静的型付けではなく、プログラム実行時に自動で決まる動的型付けである
  • クラスはなく、プロトタイプ継承を行う。(上手く使えばクラスのようなことが可能)
  • 主にクライアントサイドで使用される(サーバーサイドでの使用も増えてきている)
  • クライアントのファイルにはCookieを除いて一切アクセス不可能である(HTML5ではその制限が一部緩和されている)

JavaScriptの言語仕様

  • 大文字と小文字を区別される
  • センテンスの区切りはセミコロン(;) ※1
  • 文字列リテラルは、「’」または「”」で囲む
  • 文字列の結合は「+」
  • スコープはグローバルとローカル(関数内)の2つのみ
  • 単一行コメントは「//」以降
  • 複数行コメント(ブロックコメント)は「/*」と「 */」で囲む
  • elseif」でも「elsif」でもなくて、「else△if
  • switchbreakがないと「フォールスルー」する

※1 実は文末のセミコロン(;)は必須ではありません。省略した場合は自動挿入されます。
   ただし、意図しない動作となることがあるため必須と考えたほうが良いです。

意外と知られていないこと

  • document.wirte() の引数に複数の引数を渡すと自動的に連結して表示してくれる。
  • 変数宣言時のvarは省略可能なのではなく、付けるのと付かないのではスコープが異なる。
  • 関数の引数の数より、実際の渡す引数が少なくても多くてもエラーにはならない。
  • prototypeとクロージャーを駆使すればクラスのようなことが出来る。
  • 変数に関数自体(関数名ではない)を格納できる。引数として渡すことも出来る。
  • 匿名(無名)関数を作成することが出来る。

スクリプト言語という呼び方について

コンパイル型に対するインタプリタ型は定義がハッキリしていますが、スクリプト言語という呼び方はハッキリした定義がないため使わない方が良いでしょう。(定義のハッキリしないものを使ったところで誤解を招くだけで意味がありません)

スクリプト言語 -WikiPedia-

スクリプト言語(スクリプトげんご、英語: scripting language)とは、アプリケーションソフトウェアの動作内容を、台本(script)のように記述し制御するための、簡易的なプログラミング言語である。
上記の意味より、さらに転じて、比較的単純なプログラムを記述するための、簡易的なプログラミング言語全般をいう。変数に型をつけないなど、動的型付け言語をスクリプト言語と呼ぶ定義もある。ただし、厳密な定義ないし区別は存在しない。インタプリタ方式を採用しているものが多いが、JavaScriptやLuaなどJITコンパイラを処理系に搭載しているものが増えている。
(Wikipediaより引用)

免責事項

情報の正当性について

当サイトに記載している情報は、管理人自らの体験に基づき正確な記述を心がけていますが、情報の正当性を完全に保証するものではありません。

損害・トラブルについて

当サイトの情報をご利用になったことによって生じた損害・トラブル等に関しまして、当方は一切賠償責任を負いかねることをご了承ください。自己責任のもと、ご自身で最終的な判断をした上でご利用願います。

掲載内容の誤りについて

上述のように賠償責任を免責されることと、文責そのものを放棄することとは同等ではありません。記述内容に重大な過ちがある場合はご指摘いただきましたら直ちに訂正いたします。

プログラム倶楽部