何ですか Javaスクリプト?Hello Worldの例を含む紹介

⚡ スマートサマリー

Javaスクリプトとは、ウェブページをインタラクティブにするプログラミング言語です。この入門では、 Javaスクリプトとは、その生成元、ブラウザとNode.jsがどのように実行するか、そして最初の「Hello World」スクリプトの書き方と実行方法のことです。

  • 🌐 クライアントとサーバー: Javaスクリプトは当初ブラウザ内で動作していましたが、現在はNode.js、Deno、Bunを介してサーバー上でも動作します。
  • 🕰️ 原産地: ブレンダン・アイクは1995年にネットスケープでこの言語を開発しました。当初はMochaと呼ばれ、その後LiveScriptとなり、 Java脚本。
  • 📜 標準: ECMAScriptは公式仕様であるため、現代のブラウザはすべて同じコア言語ルールに準拠しています。
  • 🛠️ セットアップ: 最初のスクリプトを作成してテストするには、プレーンテキストエディタと最新のブラウザがあれば十分です。
  • 甘いもの<XNUMXxXNUMX><XNUMXxXNUMX><XNUMXxAXNUMX><XNUMXxAXNUMX>️️ コンソールから始めてください: F12キーを押してコンソールタブを開き、以下のコマンドを1行ずつ実行します。 Javaファイルを作成せずにスクリプトを作成する。
  • ☕ もしアカウントが違う場合: Java: Java (NAIST) と Javaスクリプトは4文字のアルファベットを共有するだけで、型システムやランタイムなど、それ以外はほとんど共通点がない。
  • ⚡ 配置: よりクリーンでキャッシュ可能なページを作成するには、スクリプトをスクリプトタグ内に記述するか、外部の.jsファイルへのリンクを貼ってください。

何ですか Javaスクリプト

何ですか Javaスクリプト?

Javaスクリプトは、ウェブページに動作を追加する高水準プログラミング言語です。ウェブの3つのコア技術の1つです。HTMLは構造を提供し、CSSは外観を提供し、 Javaスクリプトがインタラクションを提供します。検索ボックスに入力すると候補が表示されたり、写真カルーセルがスライドしたり、サインアップフォームに入力漏れの警告が表示されたりするたびに、 Javaスクリプトがバックグラウンドでその処理を行っています。

下の図は、スクリプトが通常のウェブページのマークアップとどのように並んで配置されるかを示しています。

はじめに Javaスクリプト

その生涯のほとんどにおいて JavaScriptは、ブラウザ内でのみ実行されるため、クライアントサイドスクリプト言語として説明されていました。しかし、その説明は今では不完全です。2009年にNode.jsが登場して以来、同じ言語はWebサーバー、コマンドラインユーティリティ、デスクトップアプリケーション、モバイルアプリにも使用されています。今日では、より正確な説明は次のようになります。 Javaスクリプト言語は汎用的な言語であり、ブラウザにおいて非常に強い存在感を示している。

その言語を特徴づける要素は以下のとおりです。

  • 動的型付け: 変数は、今は数値を格納していても、少し後には文字列を格納している可能性があるため、プログラムの実行中に型チェックが行われます。
  • 解釈およびジャストインタイムコンパイル: ChromeのV8やNode.jsなどのエンジンは、高速化のために頻繁に実行されるコードを機械語にコンパイルします。
  • マルチパラダイム: 命令型、関数型、オブジェクト指向型のすべてのスタイルがサポートされています。
  • イベント主導型: コードは上から下へ実行されて停止するのではなく、クリック、キーストローク、タイマー、ネットワーク応答に反応します。ping.
  • イベントループを備えたシングルスレッド: ネットワーク呼び出しのような処理の遅い作業は、ページをフリーズさせるのではなく、キューに格納されます。

💡ヒント: JavaScriptとECMAScriptは競合する言語ではありません。ECMAScriptは記述された仕様であり、 Javaスクリプトとは、ブラウザやNode.jsが実際に提供している、その仕様の実装のことです。

の歴史 Javaスクリプト

ブレンダン・アイクが Java1995年にNetscape Communicationsでスクリプトを作成し、約10日間で最初の動作プロトタイプを作成した。社内ではプロジェクトは モカNetscape Navigator 2.0 ベータ版に同梱されていました。 ライブスクリプト 1995年9月に改名され、 Javaスクリプト 1995年12月、NetscapeとSun Microsystems(所有していた会社)とのマーケティング契約の一環として Java 当時の。

Javascript 沿革

その名称変更こそが、多くの初心者が今でもそう考えている唯一の理由である。 JavaScript は軽量版です Javaこの2つの言語は、設計、所有権、実行時において関連性がありません。Netscapeは1996年にこの言語をEcma Internationalに提出し、ECMA-262規格の初版は1997年6月に発行されました。以下の表は、古いコードを読む際に最も重要なマイルストーンを示しています。

年 マイルストーン 重要性
1995 Mocha、次にLiveScript、次に Javaスクリプト この言語は、ネットスケープ社のブレンダン・アイヒによって開発されました。
1997 ECMA-262 初版 この言語は、ベンダーに依存しない成文化された標準規格を獲得する。
2009 ES5とNode.jsの最初のリリース 厳格モードが到来し、 Javaスクリプトがブラウザからエスケープされます。
2015 ES6 (ECMAScript 2015) let、const、アロー関数、クラス、モジュール、およびプロミスが追加されました。
2016年以降 ECMAScriptの年次版 小規模な新機能は、まれに大規模なリリースを行うのではなく、毎年6月にリリースされる。

年間リリースサイクルのため、2015年以前に書かれたコードは現代のコードとは明らかに異なって見える。古いチュートリアルでは var どこでも、現在のコードでは let (NAIST) と const を特定いたします。 変数を宣言する Javaスクリプト.

何ですか Javaスクリプトの用途は?

Javaスクリプト言語はもはや小さなページ上の工夫に留まらない。同じ構文が今や4つの異なる場所で使われており、それが開発者調査で最も広く使われている言語の一つとして常に上位にランクインする理由である。

エリア この試験は Javaスクリプトはそこにあります 典型的なツール
ブラウザフロントエンド クリックを処理し、ページをリロードせずに更新し、フォームを検証し、グラフを描画します。 React、Vue、Angular、Svelte
サーバ側 HTTPリクエストを処理し、データベースと通信し、RESTまたはGraphQL APIを構築します。 Node.js、Deno、Bun、Express
モバイルアプリケーション 構築します Android そして、単一の共有コードベースからiOSアプリを開発する。 リアクトネイティブ、 Ionicコンデンサ
デスクトップアプリケーション ウェブインターフェースを、ファイルシステムへのアクセス権限を持つネイティブウィンドウでラップします。 電子、タウリ
ツールと自動化 アセットをバンドルし、テストスイートを実行し、ブラウザを駆動してエンドツーエンドテストを実行します。 Vite、webpack、Jest、Playwright

ゲーム、データ視覚化、ブラウザ拡張機能、小規模なハードウェアプロジェクトもすべてこれに依存しています。初心者にとって、その実用的な結果は単純です。構文に費やす労力は、後々のサーバー作業、モバイル作業、テスト自動化に直接つながります。言語が実際の問題にどのように適用されるかを確認したい場合は、一連の作業に取り組んでください。 実用的 Javaスクリプトコードの例 基本が身についたら。

実行方法 Javaスクリプト?

Javaスクリプトは単独では実行されません。ホスト環境が必要です。 Javaスクリプト エンジンChromeとEdgeはV8を使用しています。 Firefox SpiderMonkeyを使用し、Safariは JavaScriptCore。ブラウザがHTMLページをダウンロードし、スクリプトを見つけると、そのスクリプトをエンジンに渡します。エンジンはスクリプトを解析、コンパイル、実行します。

2番目のホスト環境はNode.jsで、ブラウザの外側に同じV8エンジンを組み込んでいます。このようにして、同じ言語がサーバー上またはターミナルで実行されます。実用的な利点は、 Javaスクリプトは 最新のブラウザはすべてそれをサポートしています。 on Windows、Linux、および macOSそのため、訪問者がどのブラウザを使用しているかを気にする必要はほとんどありません。これは、Internet Explorerでしか動作しなかったVBScriptよりも明らかに改善されています。 Windows そして現在では、Internet Explorer自体とともに非推奨となっています。

⚠️ 警告: ブラウザ JavaスクリプトとNode.js Javaスクリプトはコアとなる言語を共有するが、周囲のオブジェクトは共有しない。 document (NAIST) と window ブラウザ内にのみ存在し、 require ファイルシステムモジュールはNode.jsにのみ存在します。確認せずに両者間でコードをコピーすると、参照エラーが発生します。

必要なツール

コードを記述するにはテキストエディタが必要で、結果を表示するにはブラウザが必要です。 Notepad++, Visual Studio Code, Sublime Text、また、使い慣れたエディタであればどれでも構いませんが、構文ハイライトと括弧のマッチング機能を備えたエディタを使えば、デバッグの手間を大幅に省けます。最新のブラウザであればどれでも動作します。 Google Chrome, Firefox, Microsoft EdgeまたはSafari。この2つ以外に、購入したりインストールしたりする必要のあるものは何もありません。

シンプルな Javaスクリプトプログラム

あなたが保つなら JavaHTMLドキュメント自体の中にスクリプトを記述する場合、すべてのコードは<script>タグで囲む必要があります。 <script> タグと閉じタグ </script> タグ。これは、ブラウザがコードを周囲のマークアップから区別する方法です。古いページも設定されています。 type 属性、次のように記述されます <script type="text/javascript">これは、VBScript のような競合するクライアントサイド言語が存在していた時代には必要でした。現代のページでは、HTML5 がこれを扱うため、これを省略しています。 text/javascript デフォルト設定です。以下の2つのバージョンは機能的に同一であり、どちらも有効です。

ハローワールドの例

従来の最初のプログラムはメッセージを表示します。次のマークアップをファイルに配置してください。 hello.html そしてブラウザで開きます。

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script type="text/javascript">
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

出力:

A browser dialog box opens containing the text:

Hello World!

注意: type="text/javascript" HTML5では不要です。以下のコードも全く同じように動作します。

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script>
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

出力:

A browser dialog box opens containing the text:

Hello World!

ページが数行を超えると、スクリプトを独自の .js ファイルはマークアップの可読性を維持し、ブラウザがコードをキャッシュできるようにします。違いについては、この比較で詳しく説明します。 内部と外部 Javaスクリプト.

初めてのスクリプトの書き方と実行方法

実行するための3つの実際的な方法があります Javaスクリプトは3種類あり、それぞれ異なる状況に適しているため、初心者は3種類すべてを試してみるべきです。

1. ブラウザのコンソール。 これは最速のオプションで、ファイルは一切必要ありません。任意のウェブページを開き、 F12 (またはCtrl+Shift+I オン Windows Linux では、Cmd+Option+I で macOS)、およびを選択します 領事 タブキーを押します。一行入力してEnterキーを押すと、結果がすぐに表示されます。単一の式をテストしたり、関数の戻り値を確認したりするのに最適な場所です。

// Type each line into the browser console and press Enter
console.log(2 + 2);
console.log("Guru" + 99);
console.log(Math.max(4, 12, 7));
console.log(typeof "hello");

出力:

4
Guru99
12
string

2行目に注目してください。文字列に数字99を追加すると「Guru” は文字列を生成します “Guruエラーではなく99なので、 Javaスクリプトは数値を自動的にテキストに変換します。この動作は便利ですが、初心者が陥りやすい典型的なバグの原因でもあります。

2. HTMLファイル。 これは、上に示した「Hello World」の例です。フォームの値を読み取ったり、要素を変更したりするなど、コードがページ自体にアクセスする必要がある場合はいつでも使用してください。

3. ターミナルからNode.jsを起動します。 Node.jsをインストールし、コードをファイルに保存します。 .js 拡張機能を実行してから、 node first-script.js何もレンダリングされないので console.log これがあなたの出力チャネルになります。これは、HTMLを使わずに純粋な言語機能を練習したい場合に最適な方法です。

// first-script.js
const language = "JavaScript";
const createdBy = "Brendan Eich";
const releaseYear = 1995;

console.log(language + " was created by " + createdBy + " in " + releaseYear + ".");

const usedFor = ["Interactive web pages", "Server apps with Node.js", "Mobile apps"];

usedFor.forEach(function (item, index) {
  console.log(index + 1 + ". " + item);
});

出力:

JavaScript was created by Brendan Eich in 1995.
1. Interactive web pages
2. Server apps with Node.js
3. Mobile apps

この短いスクリプトは、あなたが頻繁に目にするであろう3つのアイデアをすでに使用しています。定数は次のように宣言されます。 const、 配列 値のリストを保持し、コールバック関数が渡されます。 forEach同じループを書き換える for ステートメントは、学習した後に役立つ練習です ループ Javaスクリプト.

Javaスクリプト対 Java

これらの名前はプログラミング史上最大の失敗であり、それらが引き起こす混乱を早めに解消しておく価値がある。 JavaScriptは、1995年にマーケティング上の理由からLiveScriptから改名されました。 Java はウェブ上で最も話題になった技術だった。この2つの言語は、異なる企業に所属する異なる人々によって、異なる問題解決のために設計された。

側面 Javaスクリプト Java
によって作成された ネットスケープ社のブレンダン・アイヒ、1995年 サン・マイクロシステムズ時代のジェームズ・ゴスリング、1995年
Typing 動的かつ弱型付け 静的で厳密な型付け
走る ブラウザエンジンとNode.js その Java 仮想マシン
編集 実行時にエンジンによってジャストインタイムコンパイルされる 事前にバイトコードにコンパイル済み
オブジェクトモデル プロトタイプベースで、ES6でクラス構文が追加されました。 授業開始時から
ファイル拡張子 。Jsの .java を .class にコンパイル
一般的な使用 ウェブフロントエンド、API、ツール エンタープライズバックエンド、 Androidビッグデータ

唯一の共通点は、どちらもC言語から波括弧構文を借用している点です。一方を学んでも他方は学べませんが、共通の構文のおかげで後者の言語が少し読みやすくなります。ping あなたに訴えます、 TypeScript 静的型レイヤーを上に追加します Java平文にコンパイルされるスクリプト Javaスクリプト、そしてその違いはここに記載されています TypeScript (NAIST) と Javaスクリプト比較.

基本が整ったので、次の自然なステップは 相互作用的 Java脚本練習をタップし、その後、 変数とデータ型、続いて アレイ (NAIST) と loops。 その後、 オブジェクト指向 Javaスクリプト オブジェクト、プロトタイプ、クラスがどのように組み合わさるかを説明し、 文字列のフォーマット 本書では、ほぼすべてのスクリプトで使用するテキスト処理について解説します。

よくあるご質問

ECMAScriptは、構文と組み込みオブジェクトを定義する、ECMA-262として公開された標準規格です。 JavaScriptは、ブラウザベンダーやNode.jsによって提供される、その標準規格の実装です。ES6などのバージョン名は、標準規格の版を表します。

どちらも当てはまります。ソースコードはプレーンテキストとして提供され、エンジンによって読み込まれますが、V8やSpiderMonkeyなどのエンジンは、頻繁に実行される関数をジャストインタイムで機械語にコンパイルします。その結果、コンパイルされた言語に近い速度で、インタプリタ型言語のように動作します。

一般的な原因としては、閉じタグの欠落、外部ファイルへのパスの誤り、構文エラーを引き起こすタイプミス、または対象要素が存在する前に実行されるスクリプトなどが挙げられます。正確なエラー内容を確認するには、「コンソール」タブを開いてください。

学習中は、数行程度のコードであれば内部スクリプトでも問題ありません。しかし、コードが複数のページで再利用されるようになったら、すぐに外部の.jsファイルに移行してください。そうすることで、ブラウザがキャッシュできるようになり、マークアップの可読性が維持されます。

彼らは動作するコードスニペットを素早く作成できますが、ブラウザ専用APIとNode.js専用APIを混在させたり、独自のメソッドを考案したりすることもあります。提案されたコードはすべて実行し、コンソールのエラーを自分で確認し、出力結果を完成された回答ではなく、あくまでも下書きとして扱ってください。

チャットインターフェースを構築し、モデルの応答をトークンごとにストリーミングし、Node.jsバックエンドからモデルAPIを呼び出します。TensorFlow.jsやONNX Runtime Webなどのライブラリは、より小規模なモデルをブラウザ内で直接実行することもできます。