recursal/MDN huggingface dataset:
Element (要素)
============

**要素** (element) はウェブページの一部分です。 XML と HTML では、要素はデータ項目やテキストのかたまりや画像を含んだり、何も含まなかったりします。ふつうは要素は 属性 (attribute) つきの開始タグ (opening tag) と、囲まれたテキストコンテンツと、閉じタグ (closing tag) を含んでいます。

![例: <p class="nice">Hello world!</p> においては、 '<p class="nice">' が開始タグで、 'class="nice"' が属性とその値で、 'Hello world!' が囲まれたテキストコンテンツで、 '</p>' が閉じタグです。](/ja/docs/Glossary/Element/anatomy-of-an-html-element.png)

要素とタグは同じでは*ありません*。タグはソースコード内で要素を開始させたり終了させたりするのに対し、要素は DOM 、つまりブラウザーに表示する文書モデルの一部分です。

関連情報
----

* HTML を始めよう
* カスタム要素の定義
* DOM の中で要素を表現する`Element` インターフェイス
開発者ツール
======

開発者ツール（"DevTools"と略されます）は開発者がソフトウェアを作成、テスト、デバッグ するのを助けるプログラムです。

現在のブラウザーには、ウェブサイトの調査を可能にする開発者ツールが統合されています。ブラウザーの開発者ツールによって、ウェブサイトのHTML/CSS/JavaScriptの調査やデバッグ、ウェブサイトによって発生したネットワークトラフィックの調査、ウェブサイトのパフォーマンスの計測など、たくさんのことが可能となります。

関連項目
----

### 基礎知識

* Wikipedia 上の記事：Web development tools
### 技術リファレンス

* MDN 上の記事：Firefox Developer Tools
* Firebug (Firefox 向けの以前の開発者ツール)
* chrome.com 上の記事：Chrome DevTools
* apple.com 上の記事：Safari Web Inspector
* microsoft.com 上の記事：Edge Dev Tools
Method (メソッド)
=============

**メソッド**はオブジェクトのプロパティである関数です。メソッドには 2 種類があります。オブジェクトインスタンスごとに内蔵されたタスクとして実行される*インスタンスメソッド*と、オブジェクトのコンストラクターで直接呼び出しを行うタスクである\*静的メソッド\*です。

**メモ:** JavaScript では、関数自身はオブジェクトです。そういう意味では、メソッドは実際には関数へのオブジェクト参照です。

詳細情報
----

### 参考記事

* Wikipedia 上の記事「メソッド\_(計算機科学)」
* JavaScript のメソッドの定義方法 (従来の構文と新しい簡略記法の比較)
### 技術リファレンス

* JavaScript 内蔵メソッド一覧

* MDN Web Docs 用語集
    + 関数
    + オブジェクト
    + プロパティ
    + 静的メソッド
* JavaScript でのメソッドの定義
ドキュメント環境
========

JavaScript のグローバル環境が window または iframe の場合、それはドキュメント環境と呼ばれます。グローバル環境は、それよりも外側の環境を持たない環境です。

より詳しく知る
-------

### 技術リファレンス

* document environment in the HTML specification
ISP
===

ISP (Internet Service Provider, インターネットサービスプロバイダー) は、インターネット接続を提供する事業を行っています。また、メールやウェブホスティング、VoIP (IP 電話) などのサービスを提供していることもあります。これらは、(かつて主流の方式であった) 電話回線を使ったダイアルアップ接続や、ケーブルモデムまたは DSL (デジタルサービス回線) などの広帯域接続により提供されます。

さらに学ぶ
-----

### 一般的な知識

* どのようにしてインターネットが動いているのか (初心者のための説明)
* Wikipedia の Internet service provider
Hash (ハッシュ)
===========

ハッシュ関数は、可変長のメッセージ入力を受けて固定長のハッシュ出力を生成します。出力は、通常、128 ビットの「フィンガープリント」や「メッセージダイジェスト」の形を取ります。 ハッシュは暗号化にとても便利です。送信データの完全性を保証したり、メッセージ認証を提供する HMAC の基礎となったりします。

関連情報
----

* Wikipedia の ハッシュ関数
Privileged
==========

ユーザーは、システムに対する追加の権限が付与されている場合、または通常のユーザーと比較してより高い優先度レベルのコンテンツへの最終的なアクセス権が付与されている場合に、**特権がある**と言われます。

関連項目
----

### 一般知識

* Wikipedia 上の Privilege (computing) (英語)
### これについて学ぶ

* Information Security Tutorial
Microsoft Edge
==============

**Microsoft Edge** は、グラフィカルな無料のウェブブラウザーで、 Microsoft Windows に付属しており、マイクロソフトが 2014 年から開発しています。 Edge は、最初は Spartan として知られ、長い間使われた Internet Explorer を置き換えました。

1. 関連情報
    1. 公式ウェブサイト
2. MDN Web Docs 用語集
    1. Google Chrome
    2. Microsoft Edge
    3. Microsoft Internet Explorer
    4. Mozilla Firefox
    5. Netscape Navigator
    6. Opera Browser
Cryptography (暗号学)
==================

**暗号学**（Cryptography、cryptology）は、メッセージを安全に符号化して送信する方法を研究する科学です。暗号学は、安全でない環境でメッセージを符号化および復号するために使用されるアルゴリズムの設計および研究と、それらの応用です。 **データの機密性**だけではなく、暗号学はまた、**識別**、**認証**、**否認防止**、および**データの完全性**にも取り組んでいます。したがって、**暗号システム**、つまり文脈における暗号方式の使い方も研究します。

1. 一般知識
    1. Wikipedia 上の 暗号理論
    2. 情報セキュリティの基本
    3. Encrypting and Decrypting
2. MDN Web Docs 用語集
    1. 暗号利用モード
    2. サイファー
    3. 暗号文
    4. 暗号スイート
    5. 暗号解読
    6. 暗号学
    7. 復号
    8. 暗号化
    9. 暗号鍵
    10. 平文
    11. 公開鍵暗号
    12. 共通鍵暗号
POP3
====

**POP3** (Post Office Protocol) は TCP 接続を使用して、メールサーバーから電子メールを取得する非常に一般的なプロトコルです。 POP3 はもっと新しいプロトコルである IMAP4 (en-US) とは異なり、フォルダー管理に対応していません。複雑な構造となるため、実装が困難です。

メールクライアントは通常、サーバーからすべてのメッセージを受信し、すべてのメッセージを削除します。 しかし、POP3 はサーバーにメッセージのコピーを残すことができます。現在、ほぼすべてのメールサーバーとクライアントは POP3 に対応しています。

* ウィキペディア上の POP
* RFC 1734 (POP3 認証機構の仕様)
* RFC 1939 (POP3 の仕様)
* RFC 2449 (POP3 拡張機構の仕様)
* MDN Web Docs 用語集:
    + IMAP4 (en-US)
Polyfill (ポリフィル)
================

ポリフィルとは、最近の機能をサポートしていない古いブラウザーで、その機能を使えるようにするためのコードです。大抵はウェブ上の JavaScript です。

例えば、ポリフィルを使用して、独自の IE フィルターを使用して IE7 の `text-shadow` の機能を模倣したり、 JavaScript を使用して rem の単位やメディアクエリーを模倣して、適切なスタイル付けを動的に調整したり、その他の必要な機能を提供したりすることができます。

ポリフィルのみを使用しない理由は、機能やパフォーマンスをより良くするためです。ネイティブな API の実装は、ポリフィルよりも多くの機能を持ち、高速です。例えば、 Object.create のポリフィルは、 Object.create の非ネイティブな実装で可能な機能のみを含んでいます。

その他にも、ブラウザーが同じ機能を異なる方法で実装している場合の問題に対処するためにポリフィルが使用されることもあります。ポリフィルは、特定のブラウザーの標準外の機能を使って、 JavaScript が標準に準拠した方法でその機能にアクセスするための方法を提供します。今日ではこのような理由でポリフィルを使用することは稀ですが、ブラウザーごとに JavaScript の実装方法が大きく異なっていた IE6 や Netscape の時代には、特に多く見られました。 JQuery の最初のバージョンは、ポリフィルの早期の例の一つでした。これは基本的に、 JavaScript 開発者に、すべてのブラウザーで動作する単一の共通 API を提供するために、ブラウザー固有の回避策をまとめたものでした。当時、 JavaScript 開発者は、ウェブサイトをすべての端末で動作させようとすると大きな問題を抱えていました。ブラウザー間の差異が大きく、ユーザーのブラウザーに応じてウェブサイトのプログラムを根本的に変えたり、ユーザーインターフェイスを大きく変えたりしなければならなかったからです。そのため、 JavaScript の開発者が利用できるのは、すべてのブラウザーでほぼ一貫して動作するごく一部の JavaScript API のみでした。現代のブラウザーは、ほとんどが標準的な意味に従って幅広い API を実装しているので、ブラウザー固有の実装を処理するためにポリフィルを使うことは今日ではあまり一般的ではなくなりました。

詳細情報
----

### 一般知識

* What is a polyfill? (この単語の創案者である Remy Sharp による記事)
Doctype
=======

HTML において、 doctype はすべての文書の先頭に見られる "`<!DOCTYPE html>`" という必須の前置きです。その唯一の目的は、ブラウザーが文書をレンダリングするときにいわゆる「後方互換モード (quirks mode)」に切り替わるのを防ぐことです。つまり、 "`<!DOCTYPE html>`" という doctype は、ブラウザーがいくつかの仕様で互換性のない別のレンダリングモードを使用するのではなく、関連する仕様に従って最大限の努力を試みるようにします。

より詳しく知る
-------

### 一般知識

* Wikipedia 上の DOCTYPE宣言
* HTML 仕様における DOCTYPE の定義（英語）
* 後方互換モードと標準準拠モード
### 技術文書

* Document.doctype, Doctype を返す JavaScript のメソッド
Lossy compression (非可逆圧縮)
=========================

**非可逆圧縮** (Lossy compression) は、非可逆的圧縮 (irreversible compression) とも呼ばれるデータ圧縮手法の一種で、内容を表現するために不正確な近似や部分的なデータの切り捨てを用いるものです。簡単にいうと、非可逆圧縮はもとのファイルのデータを失わせ、品質を低下させることがあります。このような圧縮のプロセスを取り消すことはできません。一旦内容の非可逆圧縮が行われると、内容を元の状態に戻すことはできません。そのため、一般には、非可逆圧縮が行われた内容をさらに編集することは避けるべきです。

非可逆圧縮は、画像形式で広く用いられています。

![非可逆圧縮の画像](/ja/docs/Glossary/Lossy_compression/2019-11-18.png)

上の 2 個の画像の間には明らかな品質の違いは無いですが、2 番目の画像のサイズは非可逆圧縮により大幅に削減されています。

関連情報
----

* Lossless compression (可逆圧縮)
Intrinsic size (内在サイズ)
======================

CSS における要素の*内在サイズ* とは、外部要因が働いていない場合に、その内容に基づく大きさです。例えば、インライン要素は内在的にサイズ変更されます。 `width`、`height`、および垂直方向の余白とパディングは影響を与えませんが、水平方向の余白とパディングには影響を与えます。

内在サイズの計算方法は、 CSS Intrinsic and Extrinsic Sizing Specification で定義されています。

内在サイズは要素の `min-content` と `max-content` を考慮します。テキストの場合、`min-content` のサイズは、テキストがオーバーフローを起こさずインライン方向にできるだけ小さく折り返される場合に、可能な限り自動の折り返しを行います。テキスト文字列を含むボックスの場合、`min-content` のサイズは最長の単語によって定まります。 `width` プロパティの `min-content` のキーワード値は、`min-content` のサイズに従い要素のサイズを変更します。

`max-content` のサイズはその反対です。— テキストの場合、これは可能な限り広くテキストを表示し、オーバーフローが起こったとしても自動折り返しを行いません。`max-content` のキーワード値はこの動作をみせます。

画像の場合もテキストと同じ意味を持ちます。これは、CSS の適用によって描画が変更されなかった場合に表示される画像の大きさです。デフォルトでは、画像は「1x」のピクセル密度（1 デバイスピクセル = 1 CSS ピクセル）を持つものと見なされるため、固有サイズは単純にピクセルの高さと幅です。内在サイズと解像度は EXIF データで明示的に指定することもできます。また、 `srcset` 属性を使用して画像の固有ピクセル密度も設定できます（ただし、両方のメカニズムを使用する場合は、 `srcset` の値が EXIF 値を「上書き」します）。
Trident
=======

Trident（MSHTML）は、 Internet Explorer に搭載されていたレイアウトエンジンです。Internet Explorer の後継である Edge では、Trident からフォークした *EdgeHTML* と呼ばれるレイアウトエンジンが使われています。

関連情報
----

* Trident （ウィキペディア）
NAT
===

**NAT** (Network Address Translation: ネットワークアドレス変換) は、複数のコンピューターで IP アドレスを共有するための技術です。NAT は一意のアドレスをローカルネットワーク上のコンピューターへ割り当て、正しい場所へデータを届けるために、ネットワークトラフィックを調整します。

詳細情報
----

### 一般知識

* WebRTC プロトコル
* Wikipedia 上の「NAT」の記事
SSL
===

SSL (Secure Sockets Layer) は古いセキュリティ標準技術で、サーバーとクライアントの間に暗号化されたネットワークリンクを作成し、そこを通過するデータが非公開で安全であることを保証するためのものでした。SSL の現在のバージョンは 3.0 で、1999 年に Netscape 社がリリースしたものですが、TLS (Transport Layer Security) プロトコルに置き換えられました。

1. 関連情報
    1. Transport Layer Security (TLS) プロトコル
2. 用語集
    1. HTTPS
    2. TLS
3. Wikipedia の記事
    1. Transport Layer Security
Canonical order (正規順序)
======================

CSS では、正規順序は、別々の値を指定（または解析）すべき順序、または CSS のプロパティ値の一部としてシリアライズされる順序を参照するために使用されます。 これはプロパティの形式的構文によって定義され、通常、長い表現（longhand）の値を単一の一括指定（shorthand）の値の一部として指定する順序を指します。

たとえば、`background` の一括指定のプロパティー値は、いくつかの `background-*` の長い表現のプロパティーで構成されています。 これらの長い表現の値の正規順序は、次のように定義されます。

1. `background-image`
2. `background-position`
3. `background-size`
4. `background-repeat`
5. `background-attachment`
6. `background-origin`
7. `background-clip`
8. `background-color`

さらに、その構文は、`background-size` の値が与えられている場合、`background-position` の値の**直後**にスラッシュで区切って指定**しなければならない**ことを定義しています。 他の値は任意の順序で現れることができます。

より詳しく知る
-------

* CSS のプロパティに関して、「正規順序」とは何を意味しますか？ は、Stack Overflow において、有用なさらなる議論を提供します。（英語）
* MDN の CSS の値に使用される形式的構文の説明
HSTS
====

**HTTP Strict Transport Security** を使用すると、ウェブサイトはブラウザーに、HTTP を使用してサイトを読み込まないことと、HTTP を使用してサイトにアクセスしようとするすべての試みを HTTPS リクエストへ自動的に変換する必要があることを通知することができます。 これは、`Strict-Transport-Security` という 1 つの HTTP ヘッダーで構成され、サーバーによってリソースとともに送り返されます。

言い換えれば、URL でプロトコルを HTTP から HTTPS に変更するだけで、より安全に動作することをブラウザーに伝え、すべてのリクエストに対してそれを行うようにブラウザーに依頼します。

関連情報
----

* `Strict-Transport-Security`
* OWASP の記事: HTTP Strict Transport Security
* Wikipedia 上の HTTP Strict Transport Security
Character (文字)
==============

文字は、記号（文字、数字、句読点）または、表示されない制御文字（例えば、キャリッジリターンやソフトハイフン）のどちらかです。 UTF-8 は最も一般的な文字セットであり、最もポピュラーな自然言語の書記素を含みます。

より詳しく知る
-------

### 一般知識

* Wikipedia 上の キャラクタ (コンピュータ)
* Wikipedia 上の 文字コード
* Wikipedia 上の ASCII
* Wikipedia 上の UTF-8
* Wikipedia 上の Unicode
JavaScript
==========

概要
--

JavaScript (または JS) は、主にウェブページの動的なクライアントサイドスクリプトとして使用されるプログラミング言語です。しかし、サーバーサイドでも Node.js のようなランタイムを用いて、たびたび使用されています。

JavaScript と ブログラミング言語 Java を混同**しないでください>**。*"Java"* と *"JavaScript"* のどちらも米国その他の国での Oracle の(登録)商標ですが、この 2 つのプログラミング言語は構文、セマンティクス、ユースケースがかなり異なります。

JavaScript は主にブラウザーで使用され、これにより DOM を介したウェブページ内容の操作、AJAX や IndexedDB によるデータ操作、canvas によるグラフィック描画、そして様々な API を介してブラウザーが稼働しているデバイスとの情報のやり取り、その他多数のことを開発者ができるようにします。JavaScript は世界で最も広く利用されている言語の一つであり、ここ最近のブラウザーで利用可能な API の成長とパフォーマンスの革新がその原動力となっています。

起源と歴史
-----

(当時 Netscape コーポレーションの社員だった) Brendan Eich によりサーバーサイド用言語として考案され、それからすぐの 1995 年 9 月に、JavaScript は Netscape Navigator 2.0 に搭載されました。JavaScript は即座に成功を収め、1996 年 8 月には Internet Explorer 3.0 が JScript という名で JavaScript 対応を導入しました。

1996 年 11 月、JavaScript を工業規格にしようと Netscape 社は ECMA International とともに作業を始めました。その後、標準化された JavaScript は ECMAScript と呼ばれ、ECMA-262 として仕様が規定されており、2019 年 6 月に最新の第 10 版 (ES2019) が完成しました。

最近、JavaScript はブラウザー外で実行するクロスプラットフォームのもっとも有名な実行環境である Node.js プラットフォームの成功と共に人気が拡大しました。Node.js は Chrome's V8 JavaScript エンジンを使って作成されており、コンピューター上で自動処理を行うスクリプト言語として JavaScript を利用でき、またフル機能の HTTP サーバーや ウェブソケット (en-US) サーバーを構築できます。

詳細情報
----

### 基礎知識

* Wikipedia 上の記事「JavaScript」
### JavaScript の学習

* MDN 上の記事「JavaScript ガイド」
* NodeSchool による JavaScript ワークショップ
* codecademy.com による JavaScript 演習コース
* John Resig によるチュートリアル *「Learning Advanced JavaScript」*
### 技術リファレンス

* 最新の ECMAScript 仕様書
* MDN 上の記事「JavaScript リファレンス」
* JavaScript テキスト「Eloquent JavaScript」
Progressive Enhancement (プログレッシブエンハンスメント)
=========================================

**プログレッシブエンハンスメント** (Progressive enhancement) とは、可能な限り多くのユーザーに不可欠なコンテンツと機能のベースラインを提供することを中心とした設計哲学であり、必要なすべてのコードを実行できる最新のブラウザーのユーザーに限り、最高の体験を提供します。

プログレッシブエンハンスメントの「プログレッシブ」とは、古いブラウザーや機能の限られた端末のユーザーには、よりシンプルでありながら良い使い勝手を実現し、同時に新しいブラウザーや機能が豊富な端末のユーザーには、より魅力的で充実したものへ**使い勝手を進化させる**設計であることを意味しているのです。

機能検出は、一般にブラウザーが高水準のコンテンツを処理できるかどうかを判断するために使用されます。 ポリフィル は JavaScript で欠けている機能を構築するためによく使用されます。

アクセシビリティに特別な注意を払うべきです。可能な限り、受け入れ可能な代替案が提供されるべきです。

プログレッシブエンハンスメントは、ウェブ開発者が複数の未知のユーザーエージェントによってアクセスされているウェブサイトの問題のバランスを取って、最良のウェブサイトの開発に集中できるようにする便利なテクニックです。 グレースフルデグラデーションは関連していますが、プログレッシブエンハンスメントとは反対の方向に向いているとよく見られます。 実際には、両方のアプローチが有効であり、互いに補完することができます。

関連情報
----

* Wikipedia 上の プログレッシブエンハンスメント
* What is Progressive Enhancement, and why it matters at freeCodeCamp
* Progressive Enhancement reading list 2021 at QuirksMode
* Understanding Progressive Enhancement by Aaron Gustafson; a 2008 *A List Apart* article which first "placed progressive enhancement at the forefront of web developer thinking"
* Inclusive Web Design For the Future with Progressive Enhancement (related article) by Steve Champeon and Nick Finck; a 2003 SXSW presentation cited by Aaron Gustafson as "unveiling a blueprint for a new way of approaching web development", and naming it "progressive enhancement"
Static typing (静的型付け)
=====================

**静的型付け**言語（例えば、Java, C, C++）とは、コンパイル時に変数の型がわかる言語です。静的型付け言語の多くは、プログラマが明示的に型を指定しなければなりませんが、 OCaml のように型推論によってプログラマが変数の型を指定しなくてもよい場合もあります。

関連情報
----

* ウィキペディアの「型システム」
Symmetric-key cryptography (共通鍵暗号)
==================================

共通鍵暗号は、暗号化と復号で同じ鍵を使用する暗号化アルゴリズムに使用される用語です。鍵はふつう、「共通鍵」または「秘密鍵」と呼ばれます。

これは通常、公開鍵暗号では鍵が一組で生成され、一方の鍵で変換が行われたものが、もう一方の鍵でしか逆変換できないのと対照されます。

共通鍵暗号は正しく扱われれば安全で、効率性も高いので、パフォーマンスに負の影響を与えずに大きなデータを暗号化するのに使用することができます。

現在使用されている共通鍵暗号アルゴリズムの多くはブロック暗号です。すなわち、データをブロック単位で暗号化します。それぞれのブロック長は固定長であり、アルゴリズムによって決まります。例えば、 AES は 16 バイトのブロックを使用します。ブロック暗号は常に *モード* とともに使用され、ブロック長よりも長いメッセージを安全に暗号化する方法を指定しています。例えば、 AES は暗号であるのに対し、 CTR, CBC, GCM はすべてモードです。適切ではないモードを使用したり、モードを誤って使用したりした場合は、基礎となる暗号化によって提供されるセキュリティが完全に損なわれることがあります。

* MDN Web Docs 用語集
    + 暗号利用モード
    + 暗号学
    + 暗号学的ハッシュ関数
    + 共通鍵暗号
caret (キャレット)
=============

**キャレット** (テキストカーソルとも呼ばれる) は、テキスト入力が挿入される場所を示すために画面に表示されるインジケーターです。 ほとんどのユーザーインターフェイスは、細い縦線または点滅する文字サイズの四角形を使用してキャレットを表しますが、これはさまざまです。 テキスト内のこの位置は**挿入位置**と呼ばれます。「キャレット」という単語は、テキストの挿入位置をマウスカーソル (マウスポインター) と区別するためのものです。

ウェブ上では、`<input>` 要素と `<textarea>` 要素と、`contenteditable` 属性が設定されている要素の挿入位置を表すためにキャレットが使用され、要素の内容をユーザーが編集できるようにします。

より詳しく知る
-------

### 一般知識

* Wikipedia 上の Caret navigation（英語）
* Wikipedia 上の キャレット
### キャレットに関連する CSS

要素の CSS の `caret-color` プロパティを適切な `<color>` 値に設定することで、特定の要素の編集可能なコンテンツのキャレットの色を設定できます。

### キャレットを表示する HTML 要素

これらの要素はテキスト入力フィールドまたはボックスを提供し、したがってキャレットを使用します。

* `<input type="text">`
* `<input type="password">`
* `<input type="search">`
* `<input type="date">`, `<input type="time">`, `<input type="datetime">`, and `<input type="datetime-local">`
* `<input type="number">`, `<input type="range">`
* `<input type="email">`, `<input type="tel">`, and `<input type="url">`
* `<textarea>`
* `contenteditable` 属性が設定された要素
Literal (リテラル)
==============

**リテラル**は JavaScript の値を表します。これらは（変数ではなく）固定値であり、スクリプト内に文字で提供されます。

* 配列リテラル
* 論理値リテラル
* 浮動小数点リテラル
* 数値リテラル
* オブジェクトリテラル
* 正規表現リテラル
* 文字列リテラル
例
-

### 文字列リテラル

文字列リテラルとは、0 文字以上の文字を二重引用符 (`"`) または単一引用符 (`'`) で括ったものです。文字列は同じ種類の引用符で括らなければなりません (つまり、どちらも単一引用符にするか、またはどちらも二重引用符にするかです)。

以下が文字列リテラルの例です。


```js
"foo";
"bar";
"1234";
"one line \n new line";
"Joyo's cat";
```

### オブジェクトリテラル

オブジェクトリテラルとは、プロパティ名とそれに関連付けられたオブジェクトの値とのペアを 0 個以上集めたリストです。波括弧 (`{}`) で囲んで表します。

以下にオブジェクトリテラルの例を示します。`car` オブジェクトの最初の要素には `myCar` プロパティが定義され、新規文字列 "`Toyota`" が割り当てられています。2 番目の要素、`getCar` プロパティには関数 `carTypes('Honda')` によって呼び出された結果が即座に割り当てられます。3 番目の要素、`special` プロパティには既存の変数 (`sales`) が使われています。


```js
const sales = "BMW";

function carTypes(name) {
  return name === "Honda" ? name : `Sorry, we don't sell ${name}.`;
}

const car = {
  myCar: "Toyota",
  getCar: carTypes("Honda"),
  special: sales,
};

console.log(car.myCar); // Toyota
console.log(car.getCar); // Honda
console.log(car.special); // BMW
```

関連情報
----

* Literal (Wikipedia)
Fallback alignment (代替配置)
=========================

CSS ボックス配置では、代替配置を要求された配置が実現できない場合に対処するために指定します。例えば、`justify-content: space-between` を指定した場合、複数の配置対象物が存在しなければなりません。存在しない場合は、代替配置が使用されます。これは、以下のように配置方法ごとに決まります。

first baseline

`start`

last baseline

`safe end`

Baseline

`start`

space-between

`flex-start` (start)

space-around

`center`

space-evenly

`center`

stretch

`flex-start` (start)

関連情報
----

* CSS ボックス配置
String (文字列)
============

コンピュータープログラミング言語において、文字列 (string) とはテキストを表す連続した文字のことです。

JavaScript では、文字列はプリミティブ値の一つで、`String` オブジェクトが文字列プリミティブのラッパーオブジェクトになります。

関連項目
----

### 基礎知識

* Wikipedia 上の記事「文字列」
* JavaScript のデータ型とデータ構造
Usenet
======

Usenet は、各投稿が多数のサーバーで複製されるインターネットディスカッションシステムです。当時のインターネットフォーラムに相当する Usenet は、掲示板システムの様に機能していました。

詳細情報
----

### 基礎知識

* Wikipedia 上の記事「Usenet」
CalDAV
======

CalDAV（Calendaring extensions to WebDAV）は、IETF によって標準化されたプロトコルであり、サーバーからカレンダーデータにリモートアクセスするために使用されます。

より詳しく知る
-------

### 一般知識

* Wikipedia 上の CalDAV
### 技術文書

* RFC 4791: Calendaring extensions to WebDAV (CalDAV)
* RFC 6638: Scheduling Extensions to CalDAV
RSS
===

**RSS** (Really Simple Syndication) は、サイトの更新情報を配信するためにデザインされた XML ドキュメント形式です。RSS を購読すると、ウェブサイトはフィードと呼ばれる RSS ドキュメントで更新情報を RSS リーダーに送信するため、購読者はお気に入りのウェブサイトをすべて手動でチェックする必要がなくなります。

詳細情報
----

### 一般知識

* Wikipedia の RSS
### 技術リファレンス

* Latest specification
Bandwidth (帯域幅)
===============

帯域幅は、一定の時間内にデータ接続を通過できる情報量の尺度です。これは、通常、メガビット毎秒（Mbps）またはギガビット毎秒（Gbps）などのビット毎秒（bps）の倍数で測定されます。

より詳しく知る
-------

* Wikipedia 上の Bandwidth（英語）
* Wikipedia 上の 帯域幅
Browser (ブラウザー)
===============

**ウェブブラウザー**または**ブラウザー**は、ウェブからページを取得して表示するプログラムで、ユーザーがハイパーリンクを通して更に他のページへアクセスできます。ブラウザーはユーザーエージェントの最もなじみ深い形です。

詳細情報
----

### ブラウザーをダウンロードする

* Mozilla Firefox
* Google Chrome
* Microsoft Edge
* Opera ブラウザー

1. MDN Web Docs 用語集
    1. ユーザーエージェント
2. 一般知識
    1. Wikipedia 上の記事: ウェブブラウザー
    2. ウェブの進化
3. HTTP ヘッダー
    1. `User-agent`
Certificate authority (認証局)
===========================

認証局 (CA) は、デジタル証明書とそれに関連する公開鍵に署名し、含まれる情報と鍵が正しいことを保証する組織です。

ウェブサイトのデジタル証明書については、この情報には少なくともデジタル証明書を要求した組織 (例: Mozilla Corporation)、そのサイト (例: mozilla.org)、および認証局が含まれます。

認証局は、インターネットの公開鍵基盤の一部で、ブラウザーがウェブサイトの身元を確認し、 SSL （および HTTPS）で安全に接続できるようにするものです。

**メモ:** ウェブブラウザーには、あらかじめ「ルート証明書」のリストが搭載されています。ブラウザーはこれらを使って、ウェブサイトの証明書がルート証明書に「チェインバック」する（つまり、ルート証明書の所有者や中間認証局に信頼されている）認証局によって署名されていることを確実にチェックすることができる。最終的に、このプロセスは、すべての認証局が証明書に署名する前に適切な身元確認を行うことに依存しています。

関連情報
----

* 認証局 (Wikipedia)
* 公開鍵基盤 (Wikipedia)
* Mozilla Included CA Certificate List
Flex アイテム
=========

Flex Container (`display: flex` または `display: inline-flex` が設定された要素) の直下の子要素が\*\*「flex アイテム」\*\*となります。

Flex コンテナ内で直下に続くテキストも flex アイテムになります。

関連項目
----

### プロパティリファレンス

* `align-self`
* `flex-basis`
* `flex-grow`
* `flex-shrink`
* `order`
### 参考文献

* CSS フレックスボックスガイド: *フレックスボックスの基本概念*
* CSS フレックスボックスガイド: *フレックスアイテムの順序*
* CSS フレックスボックスガイド: *主軸方向のフレックスアイテムの比率の制御*
Inline-level content (インラインレベルコンテンツ)
====================================

CSS において、インラインレイアウトに関係するコンテンツは**インラインレベルコンテンツ**と呼ばれます。ほとんどのテキストシーケンス、置換要素、および生成されたコンテンツは、デフォルトでインラインレベルです。

インラインレイアウトでは、テキスト、置換要素、その他のインラインボックスが混在したストリームを、行ボックスのスタックに断片化することでレイアウトされます。各行ボックスの中でインラインレベルのボックスは、書字方向に応じて互いに垂直または水平に整列されます。一般的には、テキストのベースラインによって整列されます。これは、CSSで変更することができます。

![inline layout](/ja/docs/Glossary/Inline-level_content/inline_layout.png)

**メモ:** HTML (*HyperText Markup Language*) の要素は従来、「ブロックレベル」要素または「インライン要素」の何れかに分類されてきました。これは表示特性であることから、現在は CSS において定義されています。

例
-


```html
<p>
  この span は<span class="highlight">インラインレベル要素</span>です。
  背景は、この要素の影響の始まりと終わりの両方を表示するように色付けされています。
  <input type="radio" /> や <input type="checkbox" /> のような input
  要素もインラインレベルコンテンツです。
</p>
```


この例では、`<p>` 要素にいくつかのテキストが含まれています。そのテキストの中に、インラインレベルの要素である `<span>` 要素と 2 つの `<input>` 要素があります。`<span>` が2行にまたがっている場合、2 つの行ボックスが生成されます。これらの要素はインラインであるため、段落は途切れることのないテキストフローの 1 つの段落として正しく表示されます：
```

body {
  margin: 0;
  padding: 4px;
  border: 1px solid #333;
}

.highlight {
  background-color: #ee3;
}
```

関連情報
----

* ブロックレベルコンテンツ
* インライン整形コンテキスト (en-US)
* `display`
minification
============

**minification** とは、ブラウザーによるリソースの処理に影響を与えることなく、不要なデータや冗長なデータを削除する処理です。

minification には、コードコメント、空白、未使用コードの削除、変数名や関数名の短縮が含まれます。Minification はファイルサイズを削減することで、ウェブのパフォーマンスを向上させるために使用されます。一般的には、ビルド時に自動的に実行されます。

minification により人間にとって読みにくいコードになるので、開発者ツールにはコードに空白を戻して少しでも読みやすくすることができる「整形」 機能があります。
OpenSSL
=======

OpenSSL は、SSL と TLS のオープンソースの実装です。

もっと学ぶ
-----

### 一般知識

* Wikipedia 上の OpenSSL
* 公式ウェブサイト
Whitespace (ホワイトスペース)
=====================

**ホワイトスペース**は他の文字の中で水平または垂直の空間を表すために使用される一連の文字です。HTML, CSS, JavaScript, その他のコンピューター言語でトークンを区切るためによく使用されます。ホワイトスペース文字とその使い方は言語によって様々です。

HTML での使い方
----------

HTML Living Standard では、 U+0009 TAB (タブ), U+000A LF (改行), U+000C FF (頁送り), U+000D CR (復帰), U+0020 SPACE (空白) の 5 文字を ASCII ホワイトスペースとして定めています。テキスト形式では、これら普通の空白文字として扱われ、連続したホワイトスペースは多くの場合、1 文字の空白にまとめられます (この動作は CSS の `white-space` プロパティで変更できます)。これらは要素内の要素名と引数、クラス名の区切り文字などとしても使用されます。

JavaScript での使い方
----------------

ECMAScript® 2015 言語仕様書では、いくつかの Unicode コードポイントをホワイトスペースとして定めています。 U+0009 CHARACTER TABULATION <TAB>, U+000B LINE TABULATION <VT>, U+000C FORM FEED <FF>, U+0020 SPACE <SP>, U+00A0 NO-BREAK SPACE <NBSP>, U+FEFF ZERO WIDTH NO-BREAK SPACE <ZWNBSP> および その他のカテゴリ "Zs" Unicode の他の "Separator, space" コードポイント <USP> に属するすべての文字です。これらの文字はふつう、コードの機能性には不要なものです。

1. 仕様書
    1. ASCII whitespace
    2. ECMAScript® 2015 言語仕様書
2. リファレンス
    1. ホワイトスペースは HTML、 CSS、 そして DOM 内でどう扱われるか
    2. `white-space`
3. Wikipedia 記事
    1. Whitespace character (英語)
4. 用語集
    1. Character
CORS
====

**CORS** (オリジン間リソース共有、 Cross-Origin Resource Sharing) は、 HTTP ヘッダーの転送で構成されるシステムであり、ブラウザーがオリジンをまたいだリクエストのレスポンスに、フロントエンドの JavaScript コードがアクセスすることをブロックするかどうかを決めるものです。

同一オリジンセキュリティポリシーは、既定でリソースへのオリジン間のアクセスを禁止しています。しかし、 CORS はウェブサーバーに、リソースへのオリジンをまたいだアクセスを許可すると言うことができるようにします。

理解を深める
------

### 一般知識

* MDN 上の オリジン間リソース共有 (CORS)
* Wikipedia 上の Cross-origin\_resource\_sharing （英語）
### CORS のヘッダー

`Access-Control-Allow-Origin`

レスポンスを共有してよいかどうかを示します。

`Access-Control-Allow-Credentials`

認証情報フラグが true の場合、リクエストに対するレスポンスを公開してよいかどうかを示します。

`Access-Control-Allow-Headers`

プリフライトリクエストへのレスポンスで使用され、実際のリクエストを行う際に使用してよい HTTP ヘッダーを示します。

`Access-Control-Allow-Methods`

プリフライトリクエストへのレスポンスで、リソースにアクセスするときに使用してよいメソッドを指定します。

`Access-Control-Expose-Headers`

レスポンスの一部としてどのヘッダーを公開してよいかを、ヘッダー名を列挙することで示します。

`Access-Control-Max-Age`

プリフライトリクエストの結果をキャッシュできる時間を示します。

`Access-Control-Request-Headers`

プリフライトリクエストを発行する際に、実際のリクエストを行う際に使用される HTTP ヘッダーをサーバーに知らせるために使用します。

`Access-Control-Request-Method`

プリフライトリクエストを発行する際に、実際のリクエストを行う際に使用される HTTP メソッドをサーバーに知らせるために使用します。

`Origin`

どのオリジンからアクセスしているかを示します。

### 技術リファレンス

* Fetch specification
WebGL
=====

**WebGL** (*Web グラフィックライブラリー*) は、インタラクティブな 2D/3D グラフィックを描画する JavaScript API です。

Khronos グループ が WebGL をメンテナンスしていて、これは OpenGL ES 2.0 を元にしています。

HTML `<canvas>` 要素内で WebGL を実行できて、これがレンダリングサーフェスを提供します。

全ての主要ブラウザーは現在 WebGL をサポートしていますが、利用性は他の要素 (例 GPU サポート) にも依存します。

詳細
--

### 一般情報

* Wikipedia の WebGL
* Check for WebGL support
### 技術記事

* MDN の WebGL
* WebGL のサポート表
HTTP/3
======

**HTTP/3** は HTTP/2 に続く HTTP ネットワークプロトコル の今後のメジャーリビジョンです。 HTTP/3 の主なポイントは TCP の代わりに QUIC という新しい UDP (en-US) プロトコルを使用することです。

1. 一般知識
    1. MDN 上の HTTP
    2. Wikipedia 上の HTTP/3
2. 用語集
    1. HTTP
    2. HTTP/2
    3. Latency
Prerender
=========

プリレンダリングを使用すると、コンテンツは先読みされ、ブラウザーによってバックグラウンドでレンダリングされます。これは、コンテンツが非表示の別のタブにレンダリングされた場合と同じです。ユーザーがプリレンダリングされたコンテンツに移動すると、現在のコンテンツがすぐにプリレンダリングされたコンテンツに置き換えられます。
```

<link rel="prerender" href="https://example.com/content/to/prerender">
```

関連情報
----

* 先読み
Pseudo-class
============

CSS では**擬似クラス**セレクターを使うことで、ドキュメントツリーからの情報ではなく、その状態によって、対象の要素を指定することができます。例えば、セレクター `a``:visited` は、ユーザーがすでに訪問したリンクだけに、スタイルを適用することができます。

関連項目
----

### 技術リファレンス

* Pseudo-class documentation (擬似クラス)
Synchronous (同期通信方式)
====================

同期 (*Synchronous*) とは、各当事者がメッセージを瞬時に（または可能な限り直ちに）受信（また必要な場合には処理および返信）するリアルタイムのコミュニケーションのことを指します。

人間での例としては電話が挙げられます。電話の通話中は、あなたは通話相手に直ちに返事をしやすいです。

プログラミングのコマンドの多くも同期的です。例えば、計算式を入力すると、環境は即座にその結果を返します（そうならないようにプログラムをしない限り）。

関連情報
----

* Asynchronous
* Synchronous and asynchronous requests （XMLHttpRequest() API を用いている）