From 9a1bc874edb0a47fe02c943e7dc52a2a3b1dc5dd Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 31 May 2021 12:40:40 +0900 Subject: Web/JavaScript/Guide/Introduction を更新 (#924) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 2021/03/09 時点の英語版を更新 - 訳注マクロを削除 --- .../web/javascript/guide/introduction/index.html | 101 ++++++++++----------- 1 file changed, 50 insertions(+), 51 deletions(-) (limited to 'files') diff --git a/files/ja/web/javascript/guide/introduction/index.html b/files/ja/web/javascript/guide/introduction/index.html index 189df7a18b..296ce08f7e 100644 --- a/files/ja/web/javascript/guide/introduction/index.html +++ b/files/ja/web/javascript/guide/introduction/index.html @@ -6,59 +6,59 @@ tags: - Guide - Introduction - JavaScript - - 'l10n:priority' + - l10n:priority translation_of: Web/JavaScript/Guide/Introduction ---
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide", "Web/JavaScript/Guide/Grammar_and_types")}}
-

本章では JavaScript について紹介し、その基本的なコンセプトについて説明します。

+

本章では JavaScript について紹介し、その基本的な概念について説明します。

-

事前に知っておくべきこと

+

事前に知っておくべきこと

-

このガイドは、以下の基礎的な予備知識を持っていることを前提としています:

+

このガイドは、以下の基礎的な予備知識を持っていることを前提としています。

-

JavaScript の情報源

+

JavaScript の情報はどこにあるか

-

MDN には以下の JavaScript 関連ドキュメントがあります:

+

MDN には以下の JavaScript 関連ドキュメントがあります。

-

JavaScript を初めて学ぶ方は、学習エリア、および JavaScript ガイドの記事から始めてください。基礎をしっかり学んだら、JavaScript リファレンスを利用して、個別のオブジェクトや文についての詳細を得てください。

+

JavaScript を初めて学ぶ方は、学習エリア、および JavaScript ガイドの記事から始めてください。基礎をしっかり学んだら、JavaScript リファレンスを利用して、個々のオブジェクトや文についての詳細を得てください。

-

JavaScript とは?

+

JavaScript とは何か

-

JavaScript は、クロスプラットフォームで動作するオブジェクト指向のスクリプト言語で、ウェブページをインタラクティブにするために使用されます (例えば、複雑なアニメーション、押下可能なボタン、ポップアップメニューなどを設けることです) 。Node.js のような より高度なサーバー側のバージョンの JavaScript もあり、ファイルをダウンロードするだけでなく (複数のコンピューター間でのリアルタイムコラボレーションなど) 、ウェブサイトに多くの機能を追加することができます。ホスト環境 (例えばウェブブラウザー) 内では、JavaScript とその環境のオブジェクトが結びつけられ、プログラム制御が可能になっています。

+

JavaScript は、クロスプラットフォームで動作するオブジェクト指向のスクリプト言語で、ウェブページをインタラクティブにするために使用されます (例えば、複雑なアニメーション、押下可能なボタン、ポップアップメニューなどを設けることです) 。Node.js のような、より高度なサーバー側のバージョンの JavaScript もあり、ファイルをダウンロードするだけでなく (複数のコンピューター間でのリアルタイムの連携など) 、ウェブサイトに多くの機能を追加することができます。ホスト環境 (例えばウェブブラウザー) 内では、JavaScript とその環境のオブジェクトが結びつけられ、プログラム制御が可能になっています。

-

JavaScript には、ArrayDate、そして Math といったオブジェクトからなる基本的なライブラリ、そして演算子、制御構造、文といったプログラミング言語の要素からなる主要な機能が含まれています。JavaScript のコア機能は、追加のオブジェクトを補うことで、様々な目的に拡張することができます。例えば以下のようなものです:

+

JavaScript には、ArrayDateMath といったオブジェクトからなる基本的なライブラリ、そして演算子、制御構造、文といったプログラミング言語の要素からなる主要な機能が含まれています。JavaScript のコア機能は、追加のオブジェクトを補うことで、様々な目的に拡張することができます。例えば以下のようなものです。

-

これはつまり、ブラウザー内で JavaScript がウェブページ (DOM) の見た目を変更できるということです。同様に、サーバー上の Node.js の JavaScript は、ブラウザー内に記述されたコードからのカスタム要求に応答できます。

+

これはつまり、ブラウザー内で JavaScript がウェブページ (DOM) の見た目を変更できるということです。同様に、サーバー上の Node.js の JavaScript は、ブラウザー内に記述されたコードからの独自の要求に応答できます。

-

JavaScript と Java

+

JavaScript と Java

-

JavaScript と Java はいくつかの点では似ていますが、その他の点では全くの別物です。JavaScript 言語は Java と共通点がありますが、Java のような静的型付けと強い型検査を持っていません。LiveScript から JavaScript へ改名する理由ともなった、Java が持つ多くの式構文、命名規則と基本的な制御フローを JavaScript は踏襲しています。

+

JavaScript と Java はいくつかの点では似ていますが、その他の点では全くの別物です。 JavaScript 言語は Java と共通点がありますが、Java のような静的型付けと強い型検査を持っていません。LiveScript から JavaScript へ改名する理由ともなった、Java が持つ多くの式構文、命名規則と基本的な制御フローを JavaScript は踏襲しています。

宣言によって作られたクラスから構成される Java のコンパイル時システムとは対照的に、JavaScript は、数値や真偽値、文字列を表す少数のデータ型をベースにしたランタイムシステムをサポートしています。JavaScript は、より一般的であるクラスベースのオブジェクトモデルの代わりに、プロトタイプベースのオブジェクトモデルを持っています。プロトタイプベースモデルは動的な継承をもたらします、それはつまり、様々なオブジェクトから継承できるということです。また JavaScript は、特殊な宣言型を必要としない関数をサポートしています。関数はオブジェクトのプロパティに設定することができ、弱い型付けのメソッドとして実行することができます。

JavaScript は Java に比べて非常に自由な形式を持つ言語です。変数、クラス、メソッドをあまねく宣言する必要はありません。メソッドが public か private か、あるいは protected かどうかを気に掛けることも、インターフェイスを実装する必要もありません。変数、引数、そして型を返す関数は厳密に型付けされていません。

-

Java は高速実行と型安全のために設計されたクラスベースのプログラミング言語です。型安全というのは、例えば Java の整数値はオブジェクトの参照値として型変換することはできず {{訳注("Java のデータ型は、数値や文字列などのデータのみを表すプリミティブ型とクラス定義されたオブジェクト型 (参照型とも呼ばれる) の 2 つに分かれており、プリミティブ型のデータをオブジェクトから参照する場合はラッパークラスを使い、そのデータを適切なオブジェクト型に明示的に変換する必要がある")}}、またメモリー環境を破壊しようとする Java バイトコードからはプライベートメモリーにアクセスできないようになっているということです。Java のクラス継承と強い型付けは一般的に密結合されたオブジェクト階層を必要とします。こうした前提条件によって Java プログラミングは JavaScript プログラミングに比べ複雑なものとなります。

+

Java は高速実行と型安全のために設計されたクラスベースのプログラミング言語です。型安全というのは、例えば、 Java の整数値をオブジェクトの参照に型変換したり、有害な Java のバイトコードがプライベートなメモリーにアクセスしたりすることができないということです。 Java のクラス継承と強い型付けは、一般的に密結合されたオブジェクト階層を必要とします。こうした前提条件によって Java のプログラミングは JavaScript のプログラミングに比べて複雑なものとなります。

-

それとは対照的に、JavaScript は HyperTalk や dBASE といった一連の小規模で動的型付けを持つ言語の精神を受け継いでいます。これらのスクリプト言語が持っている、より簡素な構文、専門化されたビルトイン関数、そして最低限の条件のみを必要とするオブジェクト作成のおかげで、より広い人々にプログラミングという道具をもたらしてくれます。

+

それに対して、 JavaScript は HyperTalk や dBASE といった一連の小規模で動的型付けを持つ言語の精神を受け継いでいます。これらのスクリプト言語は、より簡素な構文、専門化された組み込み関数、最小限の要件でオブジェクトを生成できることなどで、より多くの人々にプログラミングツールを提供しています。

@@ -70,12 +70,12 @@ translation_of: Web/JavaScript/Guide/Introduction - - + + - - + + @@ -84,57 +84,57 @@ translation_of: Web/JavaScript/Guide/Introduction
JavaScript と Java との比較
オブジェクト指向言語。オブジェクトのデータ型に区別はない。継承はプロトタイプベースの機構を通して行われ、プロパティとメソッドはどんなオブジェクトにも動的に追加できる。クラスベース言語。オブジェクトはクラスとそのクラス階層によって継承されたインスタンスとに分かれている。クラスとインスタンスは動的にプロパティやメソッドを追加することができない。オブジェクト指向。オブジェクトのデータ型に区別はない。継承はプロトタイプベースの機構を通して行われ、プロパティとメソッドはどんなオブジェクトにも動的に追加できる。クラスベース。オブジェクトはクラスとそのクラス階層によって継承されたインスタンスとに分かれている。クラスとインスタンスは動的にプロパティやメソッドを追加することができない。
変数のデータ型は宣言が不要(動的型付け、弱い型付け)。変数のデータ型は宣言が必須(静的型付け、強い型付け)。変数のデータ型は宣言が不要 (動的型付け、弱い型付け)。変数のデータ型は宣言が必須 (静的型付け、強い型付け)。
ハードディスクには自動的に書き込みできない。
-

JavaScript と Java との違いについてのさらに詳しい情報は、オブジェクトモデルの詳細の章をご覧ください。

+

JavaScript と Java との違いについてのさらに詳しい情報は、オブジェクトモデルの詳細の章をご覧ください。

-

JavaScript と ECMAScript 仕様

+

JavaScript と ECMAScript 仕様書

-

JavaScript は国際的なプログラミング言語を提供できるように Ecma International によって標準化されています (ECMA は、以前は European Computer Manufacturers Association の頭文字をとったものでした)。この標準化された JavaScript のバージョンは ECMAScript と呼ばれ、この標準をサポートするアプリケーションはすべて同じ動作になります。企業は、JavaScript の実装開発にこのオープンな標準言語を利用できます。ECMAScript 標準は、ECMA-262 仕様に文書化されています。JavaScript バージョンと ECMAScript 標準化の各版との違いについて知りたい場合は JavaScript の新機能をご覧ください。

+

JavaScript は、ヨーロッパの情報通信システム標準化団体である Ecma International (ECMAは、かつての European Computer Manufacturers Association の頭文字) で標準化されており、 JavaScript をベースとした国際的なプログラミング言語の標準化を実現しています。この標準化された JavaScript は ECMAScript と呼ばれ、この規格に対応するすべてのアプリケーションで同じように動作します。企業は、このオープンスタンダードな言語を使って、 JavaScript の実装を開発することができます。 ECMAScript 標準は、 ECMA-262 仕様書に記載されています。様々なバージョンの JavaScript や ECMAScript の仕様書については、 JavaScript の新機能をご覧ください。

-

ECMA-262 標準は、ISO(International Organization for Standardization、国際標準化機構)により ISO-16262 としても承認されています。また仕様書は、Ecma International のウェブサイトでも確認できます。ECMAScript 仕様には、World Wide Web Consortium (W3C) によって標準化されているドキュメントオブジェクトモデル (DOM) が記載されていません。DOM はスクリプトから利用できる HTML ドキュメントのオブジェクトを定義しています。JavaScript でプログラミングする際に使われる様々な技術のさらに詳しい情報は、JavaScript 技術概説の記事を参考にしてください。

+

ECMA-262 標準は、ISO(International Organization for Standardization、国際標準化機構)により ISO-16262 としても承認されています。また仕様書は、Ecma International のウェブサイトでも確認できます。ECMAScript 仕様書には、World Wide Web Consortium (W3C) によって標準化されているドキュメントオブジェクトモデル (DOM) が記載されていません。DOM はスクリプトから利用できる HTML 文書のオブジェクトを定義しています。JavaScript でプログラミングする際に使われる様々な技術のさらに詳しい情報は、JavaScript 技術概説の記事を参考にしてください。

-

JavaScript ドキュメント vs ECMAScript 仕様書

+

JavaScript ドキュメント vs ECMAScript 仕様書

-

ECMAScript 仕様は ECMAScript の実装要件の集合体です。これは ECMAScript 実装やブラウザー描画エンジン (Firefox の SpiderMonkey、あるいは Chrome の V8 など) に対し、標準に準拠した言語機能を実装したい場合には便利です。

+

ECMAScript 仕様書は ECMAScript の実装要件の集合体です。これは ECMAScript 実装やブラウザー描画エンジン (Firefox の SpiderMonkey、あるいは Chrome の V8 など) に対し、標準に準拠した言語機能を実装したい場合には便利です。

-

ECMAScript の文書はスクリプトプログラマを支援するためのものではありません。スクリプトの記述についての情報を知りたければ JavaScript のドキュメントを使いましょう。

+

ECMAScript の文書はスクリプトのプログラマーを支援するためのものではありません。スクリプトの記述についての情報を知りたければ JavaScript のドキュメントを使いましょう。

ECMAScript 仕様書は、JavaScript プログラマにあまり馴染みのない専門用語と文法で書かれています。この言語を解説したものと ECMAScript とは異なるところがあるかもしれませんが、この言語自体は同じものです。JavaScript は、ECMAScript 仕様書で描かれた機能をすべてサポートしています。

JavaScript のドキュメントは、JavaScript プログラマに適した形で言語の特徴について記述しています。

-

JavaScript を始めよう

+

JavaScript を始めよう

JavaScript を始めるのは簡単です。必要なものは、最新のウェブブラウザーだけです。このガイドでは最新の Firefox でのみ利用できる JavaScript の機能をいくつか使用するので、最新の Firefox を使用することをお勧めします。

Firefox に組み込まれているウェブコンソールツールは、JavaScript を試すのに役立ちます。シングルライン入力モードとマルチライン入力モードの 2 つのモードで使用できます。

-

ウェブコンソールでの単一行入力

+

ウェブコンソールでの単一行入力

ウェブコンソールには、現在読み込まれているウェブページの情報が表示されるほか、現在のページで JavaScript 式を実行するために使用できる JavaScript インタープリターも含まれています。

-

ウェブコンソールを開くには(Windows および Linux では Ctrl+Shift+I、Mac では Cmd-Option-K)、Firefox のツールメニューを開き、ウェブ開発 ▶ ウェブコンソールを選択します。

+

ウェブコンソールを開くには (Windows と Linux では Ctrl+Shift+I、Mac では Cmd-Option-K)、Firefox のツールメニューを開き、ウェブ開発 ▶ ウェブコンソールを選択します。

-

ブラウザーウィンドウの下部にウェブコンソールが表示されます。コンソールの下部に沿って、JavaScript を入力するための入力行があり、出力は上のパネルに表示されます。

+

ブラウザーウィンドウの下部にウェブコンソールが表示されます。コンソールの下部に沿って、 JavaScript を入力するための入力行があり、出力は上のパネルに表示されます。

-

+

-

コンソールは eval と全く同じように動作し、最後に入力された式が返されます。これはコンソールに何かが入力されるたびに、console.log で囲まれた eval で評価されていると想像できます。

+

コンソールは eval と全く同じように動作し、最後に入力された式が返されます。これはコンソールに何かが入力されるたびに、 console.log で囲まれた eval で評価されていると想像できます。

-
function greetMe(yourName) {
-  alert('Hello ' + yourName);
+
function greetMe(yourName) {
+  alert("Hello " + yourName)
 }
-console.log(eval('3 + 5'));
+console.log(eval('3 + 5'))
 
-

ウェブコンソールでの複数行入力

+

ウェブコンソールでの複数行入力

-

ウェブコンソールの単一行入力モードは、JavaScript の式を素早くテストするのには最適ですが、複数行を実行するには向いていません。より複雑な JavaScript の場合は、複数行の入力モードを使用できます。

+

ウェブコンソールの単一行入力モードは、JavaScript の式を素早くテストするのには最適ですが、複数行を実行するには向いていません。より複雑な JavaScript の場合は、複数行の入力モードを使用できます。

-

Hello world

+

Hello world

JavaScript を書き始めるあたり、ウェブコンソールを複数行モードで開いて、初めての JavaScript コード "Hello world" を書いてみましょう。

-
(function(){
+
(function(){
   "use strict";
   /* コードの開始 */
   function greetMe(yourName) {
@@ -145,16 +145,15 @@ translation_of: Web/JavaScript/Guide/Introduction
   /* コードの終了 */
 })();
-

Cmd+Enter または Ctrl+Enter を押して(または実行ボタンをクリック)、結果を見てみましょう!

+

Cmd+Enter または Ctrl+Enter を押して (または実行ボタンをクリック)、結果を見てみましょう!

-

このガイドの以降のページでは、より複雑なアプリケーションを作成できるように、JavaScript の構文と言語の特徴を紹介します。

+

このガイドの以降のページでは、より複雑なアプリケーションを作成できるように、 JavaScript の構文と言語の特徴を紹介します。

-

ですが、しばらくの間、常にあなたのコードの先頭に (function(){"use strict"; を、コードの最後に })(); を記述することを忘れないでください。あとでこれらの意味を学びますが、今のところは次のように捉えておいてください。

+

ですが、しばらくの間、常にあなたのコードの先頭に (function(){"use strict"; を、コードの最後に })(); を記述することを忘れないでください。 strict モードIIFEの記事でこれらが何であるかを説明していますが、今のところは次のように捉えておいてください。

    -
  1. パフォーマンスを大幅に向上させる。
  2. -
  3. 初心者をつまづかせる、JavaScript の愚かなセマンティクスを避ける。
  4. -
  5. コンソールで実行されたコードスニペットが相互に影響することを防止する。(たとえば、あるコンソールの実行で作成されたものを別のコンソールの実行に使用するなど)
  6. +
  7. 初心者をつまずかせる、JavaScript のセマンティクスを避ける。
  8. +
  9. コンソールで実行されたコードスニペットが相互に影響することを防止する (たとえば、あるコンソールの実行で作成されたものを別のコンソールの実行に使用するなど)。

{{PreviousNext("Web/JavaScript/Guide", "Web/JavaScript/Guide/Grammar_and_types")}}

-- cgit v1.2.3-54-g00ecf