JavaScriptとは
- クロスプラットフォームで動作するオブジェクト指向のスクリプト言語
- プロトタイプベースのオブジェクトモデル
- インタープリター型、あるいは実行時コンパイルされる、第一級関数のプログラミング
クロスプラットフォームで動作するオブジェクト指向のスクリプト言語
クロスプラットフォーム
iOS,Andriod,Windows,macOSなど異なるプラットフォーム上で同じ仕様のアプリケーションを動かせるプログラムのこと
オブジェクト指向
処理を部品化して、部品を組み合わせることで1つのプログラムを作る考え方
スクリプト言語
プログラミング言語のうち、比較的容易に記述や実行ができるもの(厳密な定義は存在しない)
プロトタイプベースのオブジェクトモデル
オブジェクト指向プログラミングにはクラスベースとプロトタイプベースがある
クラスベース
オブジェクト生成は設計図となる「クラス」を用いる。設計図である「クラス」を生成されたものがオブジェクトでありこれを「インスタンス」という。
クラスベース言語の例)
JavaやPHP、Ruby、Python
プロトタイプベース
オブジェクトを素にして新しいオブジェクトを生成する。
新しく生成したオブジェクトに雛形であるオブジェクトが継承される。
const obj = {}
console.log(obj)
{}
// ↓ 雛形(プロトタイプ)から継承されたもの
[[Prototype]]
Object
constructor
ƒ Object()
hasOwnProperty
ƒ hasOwnProperty()
isPrototypeOf
ƒ isPrototypeOf()
propertyIsEnumerable
ƒ propertyIsEnumerable()
toLocaleString
ƒ toLocaleString()
toString
ƒ toString()
valueOf
ƒ valueOf()
__defineGetter__
ƒ __defineGetter__()
__defineSetter__
ƒ __defineSetter__()
__lookupGetter__
ƒ __lookupGetter__()
__lookupSetter__
ƒ __lookupSetter__()
__proto__
(...)
get __proto__
ƒ __proto__()
set __proto__
ƒ __proto__()
プロトタイプベース言語の例)
JavaScript
インタープリター型、あるいは実行時コンパイルされる、第一級関数のプログラミング
インタープリタ型言語
ソースコードを1行ずつバイナリーコードに翻訳(変換)しながらプログラムを実行するプログラミング言語
メリット
デメリット
※インタープリタ型言語に対して、コンパイル型言語もある
コンパイル言語
ソースコードをコンパイラ処理でバイナリコードに一括で翻訳(変換)し、プログラムの処理を実行させるプログラミング言語
メリット
デメリット
実行時コンパイル(JUST-IN-TIME compiler)
ソースコードや中間コードから機械語への変換処理を実行直前にまとめて行なう
コンパイラ言語とインタプリタ型言語の中間のような処理を行う
第一級関数
関数を第一級オブジェクトとして扱うことのできるプログラミング言語の性質、またはそのような関数のこと
= 単なる値として関数を扱えること
第一級オブジェクト
あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使用できる対象のこと