Help us understand the problem. What is going on with this article?

javascriptとは

More than 1 year has passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした