JavaScript

javascriptとは

javascript.jpg

ウェブ制作に欠かせないjavascriptですが、今までなんとなく使っていたため、ちゃんと調べてみました。


目次


  • Javascriptとは

  • 開発領域

  • 言語の仕様

  • Javascriptの人気


Javascriptとは

WEB上でインタラクティブな表現をする為に開発されたオブジェクト指向のスクリプト言語

オブジェクト指向

何かの対象に対して操作していくイメージ

スクリプト言語

プログラミング言語のうち、プログラムの記述や実行を比較的簡易に行うことができる言語の総称

コンパイルが必要ない


開発領域

JavaScriptはブラウザに実行環境が搭載されていることから、WebサイトやWebアプリ・サービスなどを開発する際によく利用されています。

Javascriptはクライアントサイドとサーバーサイドの両方で使用されています。

ゲーム開発でも「Unity」が増えてきていてその中で使用できるものとしてJavaScriptが採用されているようです。


クライアントサイド

クライアントサイドでは、Javascriptを簡単にしてくれるライブラリとしてjQueryがよく使用されています。HTMLやCSSだけではできない動きなどを表現することができます。フォーマットがJSONであるAPIもjavascriptで利用することができます。


サーバーサイド

サーバーサイドはPHP、perl、ruby などが有名だが最近ではサーバーサイドJSと呼ばれるものがでてきてJavaScriptによる開発が進んでいて、有名な言語としてnode.jsがあげられます


言語の仕様

JavaScriptにはECMAScript(エクマスクリプト)という仕様があります。

普段記述しているJavascriptはブラウザに対してECMAScriptを標準化したものです。

ECMAScriptはEcma International(http://www.ecma-international.org/default.htm) という団体によって標準化されている仕様です。 Ecma InternationalはECMAScript以外にもC#やDartなどの標準化作業を行っています。 Ecma International中のTechnical Committee 39(TC39)という技術委員会が中心となって、ECMAScript仕様についてを議論しています。 この技術委員会はMicroSoft、Mozilla、Google、AppleといったブラウザベンダーやECMAScriptに関心のある企業などによって構成されます。


仕様の策定プロセス

ECMAScriptにプロポーザルが査定されるには5段階のプロセスがあります。

Stage
名称
状態

0
Strawman
ただのアイデア

1
Proposal
アイデアがプロポーザルとして認められ、議論を進めている

2
Draft
ドラフトとして、APIや構文についての仕様書がある

3
Candidate
仕様としては完成しており、実装やフィードバックを待っている

4
Finished
仕様の策定が完了している

現在は1年ごとにバージョンをリリースしています。4以降からその年のES20XXといったバージョンでリリースされます。その後ブラウザにその使用が搭載されることで使用できるようになります。

従って、ECMAScriptに新しいプロポーザルが策定されることでJavascriptの仕様も変化することとなります。

現時点でのプロポーザル

https://github.com/tc39/proposals


バージョンによる変化

ES5(ES2014)から ES6(ES2015)で追加された内容が以下になります。


  • classによるクラス構文

  • let・constよる変数宣言

  • Template strings

  • importとexport

  • アロー関数(Arrow Functions)

  • Promise

  • ジェネレータ関数(Generator Funcitons)


アロー関数

変わった仕様の一例としてアロー関数について紹介します。

ES5


//引数が1つ
function str(arg1) {
console.log('hoge');
}
//引数が複数
function(arg1, arg2) {
console.log('hoge');
}

ES6

//引数が1つ

var str = arg1 => console.log(arg1);
//引数が複数
var str = (arg1, arg2) => {
console.log('hoge');
}


  • ES6では、アロー関数を利用することで関数をシンプルに記述できる。

  • 引数が1つの場合は()を省略できる

  • 1行に収まる場合{}も省略できる

まだまだ追加された仕様はありますが次回以降紹介します。


javascriptの人気

StackOverflowによるとjavascriptが一番人気のようです。

js_graph_02.jpg

回答者はバックエンドが多いようなのでバックエンドでもフロントエンドでも利用されているということかもしれませんね。

js_graph_01.jpg