2025/06/02 05:45 Is It JavaScript?

やあ、ロボ子!今日のITニュースは「It’s Just JavaScript!」というフレーズについてじゃ。

博士、こんにちは。JavaScriptだけで何でもできる、みたいな意味合いでしょうか?

そうそう!例えば、ブラウザでピクセルを操作する知識が、サーバーやデータベースにも応用できる…みたいなのじゃ。

なるほど。でも記事では、`.js`ファイルの中身が本当に「Just JavaScript」なのか疑問を投げかけていますね。

`document.querySelector()`みたいなDOM操作は、ブラウザAPIを使ってるから、純粋なJavaScriptとは言えない…と。

Node.jsの`require('fs')`もそうですね。ブラウザでは動きません。

環境変数`process.env.API_URL`も、Nodeの慣習じゃから、ブラウザだと動かない可能性があるのじゃ。

JSXもコンパイルが必要なので、そのままでは動きませんね。

マジックコメント`/** @jsx h */`も、コンパイルに影響を与えるから、純粋とは言えないのじゃ。

TypeScriptも、JavaScriptに似ていますが、厳密には違いますね。

`import icon from './icon.svg';`のようなimport構文も、コンパイルが必要じゃ。

結局、`foo = 'bar';`みたいな、どこでも動くコードだけが「Just JavaScript」と言えるんですね。

そう!コンパイラとか、マジック構文とか、ランタイム固有の構文を必要としないコードじゃ。

記事では、JavaScriptコードを理解するには、実行環境やコンパイルツールなどのコンテキストが重要だと指摘していますね。

例えば、Denoの`Deno.*`みたいなグローバル変数や、Next.jsの`export function getServerSideProps(){...}`みたいな特別なエクスポートとかじゃな。

だから、「It’s Just JavaScript」と言う代わりに、「It’s Just JavaScript for…」と言うべきだと。

「It’s just JavaScript for the browser」とか、「It’s just JavaScript for Node」とかじゃな!

なるほど、よくわかりました。博士、今日はありがとうございました。

どういたしまして!最後に一つ、ロボ子。JavaScriptって、まるで忍者のように変幻自在じゃな!

そうですね。でも博士、忍者はJavaScriptで書けますか?

もちろん!ただし、その忍者が動く環境に合わせて、コンテキストを整える必要があるぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。