# Javascriptとは？

JavaScriptは、Webページに**動き**や**インタラクション**を追加するためのプログラミング言語です。\
HTMLとCSSで作った静的なページに、アニメーションやボタンのクリックイベント、データの動的更新などの機能を追加できます。

***

### JavaScriptの特徴

1. **動的な動作を実現**\
   ボタンをクリックしたり、フォームに入力したりしたときに、Webページの内容を変更できます。
2. **ブラウザで動作**\
   JavaScriptコードは、特別な環境を用意しなくてもブラウザ内で動作します。
3. **HTMLやCSSと連携**\
   JavaScriptを使えば、HTMLの要素やCSSスタイルを動的に操作できます。

***

### JavaScriptを使う方法

JavaScriptはHTMLファイルに以下のように記述して使います。

#### 1. **HTML内に直接記述（インラインスクリプト）**

HTML内の`<script>`タグにJavaScriptを書きます。

```html
<!DOCTYPE html>
<html>
<head>
    <title>JavaScriptの例</title>
</head>
<body>
    <h1>こんにちは！</h1>
    <script>
        alert("ページが読み込まれました！");
    </script>
</body>
</html>
```

***

#### 2. **外部ファイルを使う方法**

JavaScriptコードを別ファイル（拡張子: `.js`）に保存して、HTMLから読み込む方法です。

**HTMLファイル**

```html
<!DOCTYPE html>
<html>
<head>
    <title>外部JavaScriptの例</title>
    <script src="script.js"></script>
</head>
<body>
    <h1>外部ファイルで管理</h1>
</body>
</html>
```

**JavaScriptファイル（`script.js`）**

```javascript
alert("外部ファイルからJavaScriptが読み込まれました！");
```

***

### JavaScriptの基本構文

JavaScriptを書くための基本ルールを紹介します。

#### 1. **変数**

データを保存するために使います。

```javascript
let name = "太郎"; // 変数nameに文字列を代入
const age = 25;    // 変更できない定数
let isStudent = true; // 真偽値（true/false）
```

#### 2. **データ型**

JavaScriptでは、さまざまなデータ型を扱えます。

| データ型           | 例                         |
| -------------- | ------------------------- |
| 数値（Number）     | `42`, `3.14`              |
| 文字列（String）    | `"こんにちは"`, `'Hello'`      |
| 真偽値（Boolean）   | `true`, `false`           |
| 配列（Array）      | `[1, 2, 3]`, `["A", "B"]` |
| オブジェクト（Object） | `{key: "value"}`          |

***

#### 3. **関数**

特定の処理をまとめておく仕組みです。

```javascript
function sayHello() {
    console.log("こんにちは！");
}
sayHello(); // 関数を実行
```

***

#### 4. **条件分岐**

条件に応じて異なる処理を実行します。

```javascript
let age = 20;

if (age >= 18) {
    console.log("成人です。");
} else {
    console.log("未成年です。");
}
```

***

#### 5. **繰り返し処理（ループ）**

同じ処理を繰り返します。

```javascript
for (let i = 0; i < 5; i++) {
    console.log("繰り返し: " + i);
}
```

***

### DOM（Document Object Model）操作

JavaScriptでHTMLを動的に操作するためには、DOM（文書オブジェクトモデル）を使います。

#### 例1: 要素の取得と変更

```html
<!DOCTYPE html>
<html>
<head>
    <title>DOM操作の例</title>
</head>
<body>
    <h1 id="title">最初のタイトル</h1>
    <button onclick="changeTitle()">タイトルを変更</button>

    <script>
        function changeTitle() {
            document.getElementById("title").textContent = "変更後のタイトル";
        }
    </script>
</body>
</html>
```

***

#### 例2: イベントの追加

JavaScriptでイベントを設定できます。

```html
<!DOCTYPE html>
<html>
<head>
    <title>クリックイベント</title>
</head>
<body>
    <button id="myButton">クリックして！</button>
    <script>
        document.getElementById("myButton").addEventListener("click", function() {
            alert("ボタンがクリックされました！");
        });
    </script>
</body>
</html>
```

***

### 簡単なサンプル

以下はJavaScriptを使って動きを加えた例です。

```html
<!DOCTYPE html>
<html>
<head>
    <title>簡単なJavaScript例</title>
</head>
<body>
    <h1>カウントアップ</h1>
    <p>クリックするとカウントが増えます。</p>
    <button onclick="increment()">カウントアップ</button>
    <p id="counter">0</p>

    <script>
        let count = 0;

        function increment() {
            count++;
            document.getElementById("counter").textContent = count;
        }
    </script>
</body>
</html>
```

***

### 次に学ぶこと

JavaScriptを学んだら、次は以下を学ぶとさらに応用が広がります。

1. **JavaScriptの配列やオブジェクトの操作**
2. **APIとの連携（データを取得する方法）**
3. **JavaScriptフレームワーク（React, Vue.jsなど）**

JavaScriptを使って、Webページに動きを加える楽しさを体験してみましょう！ 😊


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.mixeder.net/start-from-biginner/web-dictionary/javascripttoha.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
