LoginSignup
4

More than 5 years have passed since last update.

※非エンジニアやJS初心者向けの記事です。分かりやすさを優先しているので、正確な定義とは若干ズレている可能性があることをご了承下さい。

Node.jsって何ですか?

"プログラミング言語ではない"

言語は"JavaScript"
"Node.js"は実行環境です。

よくわからない

だと思います。
有名な言語は大概実行環境も一緒になっていることが多いです。

身近なものだと、VBAとWord/Excel/PowerPointの関係に近い

VBA、いわゆるマクロって呼ばれる機能ですね。
「書き方、基本命令」を決めている言語と、
「拡張命令、できること」を決めている実行環境がある訳です。

Word/Excel/PowerPointはプログラミング言語ですか?

違いますよね?

"プログラミング言語ではない"

"Node.js"は実行環境です。
今までは、これが各種"ブラウザ"でした。
"Node.js"はサーバーサイドやその他諸々ができる子です。

ただ一つ違うこと

ブラウザはJavaScriptが無くても成り立ちますし、
Word/Excel/PowerPointはVBAが無くても成り立ちます。
その点、"Node.js"は、JavaScriptの実行がメイン機能なので、JavaScriptが無いと成り立ちません。

もう一声

人間で例えてみる。
言語はコミュニケーションの手段でしかありません。
やれることは人によって違います。
"Node.js"はサーバーサイドやその他諸々ができる子です。

TypeScriptって何ですか?

"方言"のようなものです

JavaScript「本当に!?」
TypeScript「ほんまか!?」

関係性も似ています

関西弁を話せる人は、ある程度標準語を話せることが期待できます。
標準語を話せても、関西弁を話せるとは限りません。
(習得は新規言語に比べると楽ですし、雰囲気は感じ取れます)
※一部派生言語では、大きく書き方が違う場合もあります。日本語なら琉球語のようなものがあります。

V8って何ですか?

日本の男性アイドルグループです

JavaScriptの言語を解釈するパーツです

これがあるとJavaScriptが話せるようになります。

Node.jsでもブラウザ(Chrome)でもV8が使われています

言語を話すためのパーツなので共通です。

FirefoxやEdgeは…?

SpiderMonkeyChakraなどオリジナルのエンジンを利用しています。

V8は頭の片隅に置いておく程度でいい

電子レンジにマグネトロンが使われていることは、知らなくても生きていける。

(おまけ)

JavaScript≠フロントエンド

ブラウザだけじゃない。

Node.js≠サーバーサイド

コマンドラインツールも作れる。マイコン制御にも使われたりする。
Webだけのモノじゃない。
これは、JSの可能性をブラウザの外、全てに広げるものだ。
世間的にはサーバーで使うことが多くても、例外は居る。(私とか)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4