HTML書くのめんどくさい
「よしJavaScriptをやるぞ|と思ってもいざコードを書くとなるとHTMLが必要です. VSCodeならhtmlと打ち込むとボイラープレートが生成できます. ここにscriptタグを足してやればブラウザのコンソールで入力を確認したりできます.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script type="text/javascript" src="./index.js"></script>
<title>Document</title>
</head>
<body>
</body>
</html>
もちろんできますが面倒です. ブラウザを開く必要もあります. そこでNode.jsの出番です.
Node.jsって何?
公式ページによると以下のような説明がされています.
Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript環境です.
よし分からん. サーバーサイドJavaScriptなどとも言われますが, JavaScriptを普通のプログラミング言語のように動かせる実行環境だと思えばいいです. サーバーというのはつまるところコンピュータのことですから. つまりNode.jsはJavaScriptをコマンド・ラインで実行できるわけです.1 ブラウザに閉じ込められていたJavaScriptの真の力が発揮されるわけです. Node.jsの導入の仕方などはネットで検索してください.2
Node.jsでHello, World!
console.log("Hello, World!");
node index.js
# Hello, World!
簡単ですね? JavaScriptという言語を試したいけど一ミリもDOMとかWindowとか使わんしHTMLのボイラープレート書くのめんどくさい, そんな感じで心が折れているあなたはNode.jsで解決です3
付録
コード・サンプル
とりあえずNoe.js環境を整備して以下を実行してみよう!
const pets = ["🐱", "🐶", "🐷"];
const newPets = ["🐮", ...pets];
console.log(newPets);
const hasCat = newPets.includes("🐱");
if (hasCat) {
console.log(`animals includes ${newPets[0]}`);
}
ブラウザ環境との違い
windowは存在しないのでglobalというのが代わりになるようです.
function noWindow() {
if (this === global) {
console.log("windowは存在しません");
}
}
noWindow();
またconsole.logで関数名だけを渡しても文字列にはならないのでtoStringで文字列に変換する必要があります.
function MyFunc() {
return "定義は見えてますか?";
}
console.log(MyFunc.toString());