Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

web/javascript 以下の Note: Warning: Callout: を日本語に変換 #8939

Merged
merged 1 commit into from
Oct 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions files/ja/web/javascript/closures/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ console.log(counter.value()); // 1.

これら 3 つのパブリック関数は同じ環境を共有するクロージャです。JavaScript のレキシカルスコープにより、これらの関数はそれぞれが変数 `privateCounter` と関数 `changeBy` にアクセスできます。

> **Note:** カウンターを作成する無名関数を定義して、それをすぐに呼び出して結果を `counter` 変数に代入していることに注目してください。この関数を別の変数 `makeCounter` に格納し、複数のカウンターを作成するために使用することができます。
> **メモ:** カウンターを作成する無名関数を定義して、それをすぐに呼び出して結果を `counter` 変数に代入していることに注目してください。この関数を別の変数 `makeCounter` に格納し、複数のカウンターを作成するために使用することができます。

```js
var makeCounter = function() {
Expand Down Expand Up @@ -214,7 +214,7 @@ alert(counter2.value()); // 0.

2 つのカウンターが互いに独立した状態を維持していることに注目してください。各クロージャは、独自のクロージャを介して異なるバージョンの `privateCounter` 変数を参照しています。カウンターのいずれかが呼び出されるたびに、この変数の値を変更することで、そのレキシカル環境が変化します。あるクロージャで変数値を変更しても、もう一方のクロージャの値には影響しません。

> **Note:** このようにしてクロージャを使うと、普通はオブジェクト指向プログラミングに付き物のいくつかの利点、具体的には*データの隠蔽*や*カプセル化*が利用できるようになります。
> **メモ:** このようにしてクロージャを使うと、普通はオブジェクト指向プログラミングに付き物のいくつかの利点、具体的には*データの隠蔽*や*カプセル化*が利用できるようになります。

## クロージャのスコープチェーン

Expand Down
6 changes: 3 additions & 3 deletions files/ja/web/javascript/data_structures/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ ECMAScript には、**数値型** (Number) と**長整数型** (BigInt、下記

{{jsxref("Infinity", "±Infinity")}} 内で使用可能な最大値または最小値を確認するには、定数 {{jsxref("Number.MAX_VALUE")}} または {{jsxref("Number.MIN_VALUE")}} を使用できます。

> **Note:** ECMAScript 2015 からは、{{jsxref("Number.isSafeInteger()")}}, {{jsxref("Number.MAX_SAFE_INTEGER")}}, {{jsxref("Number.MIN_SAFE_INTEGER")}} を使用して、数値が倍精度浮動小数点数の範囲内にあるかどうかを確認することができるようになりました。
> **メモ:** ECMAScript 2015 からは、{{jsxref("Number.isSafeInteger()")}}, {{jsxref("Number.MAX_SAFE_INTEGER")}}, {{jsxref("Number.MIN_SAFE_INTEGER")}} を使用して、数値が倍精度浮動小数点数の範囲内にあるかどうかを確認することができるようになりました。
>
> この範囲を超えた JavaScript の整数値は正確ではなくなり、倍精度浮動小数点値の近似値に丸められます。

Expand All @@ -84,7 +84,7 @@ Infinity

多くの場合、数値はその値のみを表しますが、JavaScript には{{jsxref("Operators", "バイナリー (ビット単位) 演算子", "", 1)}}も用意されています。

> **Note:** ビット演算子で[ビットマスク](https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B9%E3%82%AF_%28%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6%29)を使用すれば、 1 つの数値で複数の論理値を表現することも*可能です*が、 JavaScript は (論理型の配列や名前付きプロパティに論理値が割り当てられたオブジェクトのような) 論理値の集合を表現する手段を提供しているため、この行いは悪い習慣として考えられます。ビットマスクはコードの可読性、わかりやすさ、保守性を大きく損ないます。
> **メモ:** ビット演算子で[ビットマスク](https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B9%E3%82%AF_%28%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6%29)を使用すれば、 1 つの数値で複数の論理値を表現することも*可能です*が、 JavaScript は (論理型の配列や名前付きプロパティに論理値が割り当てられたオブジェクトのような) 論理値の集合を表現する手段を提供しているため、この行いは悪い習慣として考えられます。ビットマスクはコードの可読性、わかりやすさ、保守性を大きく損ないます。

ローカルストレージの容量的制約への対処や、ビット単位での転送量を考える必要のある極限状態など、非常に特殊なケースにおいてはこうしたテクニックが必要となるでしょう。このテクニックは、あくまでも最適化が必要な場合の最終手段としてのみ考慮すべきです。

Expand Down Expand Up @@ -150,7 +150,7 @@ JavaScript では、オブジェクトはプロパティの集合として見る

オブジェクトには、*データ*プロパティと*アクセサー*プロパティという特定の属性を持つ 2 種類のプロパティがあります。

> **Note:** 各プロパティに対応する*属性*は JavaScript エンジンによって内部的に使用されるので、直接アクセスすることはできません。そのため、属性は 1 つではなく 2 つの角括弧で表示されています。
> **メモ:** 各プロパティに対応する*属性*は JavaScript エンジンによって内部的に使用されるので、直接アクセスすることはできません。そのため、属性は 1 つではなく 2 つの角括弧で表示されています。
>
> 詳しくは {{jsxref("Object.defineProperty()")}} を参照してください。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ while (x < 10) {

ここでは `{ x++; }` がブロック文となります。

> **Note:** **重要**: ECMAScript 2015 (6th edition) より前の JavaScript にはブロックスコープが**ありません**。古い JavaScript では、ブロック内で導入された変数のスコープは、そのブロックがある関数やスクリプトになり、それらの変数を設定した影響は、そのブロックを越えて持続します。つまり、*ブロック文はスコープを定義しない*ということです。
> **メモ:** ECMAScript 2015 (6th edition) より前の JavaScript にはブロックスコープが**ありません**。古い JavaScript では、ブロック内で導入された変数のスコープは、そのブロックがある関数やスクリプトになり、それらの変数を設定した影響は、そのブロックを越えて持続します。つまり、*ブロック文はスコープを定義しない*ということです。
>
> 「単独の」ブロックも正しい構文ですが、C や Java のブロックで提供されるものとは異なる結果をもたらします。例えば、
>
Expand Down Expand Up @@ -136,7 +136,7 @@ if ((x = y)) {

上記以外の—オブジェクトを含む—すべての値は、条件文に渡されると `true` と評価されます。

> **Note:** プリミティブな真偽値の `true` と `false` を、{{jsxref("Boolean")}} オブジェクトの true や false という値と混同しないでください。
> **メモ:** プリミティブな真偽値の `true` と `false` を、{{jsxref("Boolean")}} オブジェクトの true や false という値と混同しないでください。
>
> 例:
>
Expand Down Expand Up @@ -258,7 +258,7 @@ throw true; // 論理型
throw {toString: function() { return "これはオブジェクトです!"; } };
```

> **Note:** **メモ:** 例外を投げる際にオブジェクトを指定することができます。そして、`catch` ブロックでそのオブジェクトのプロパティを参照することができます。
> **メモ:** 例外を投げる際にオブジェクトを指定することができます。そして、`catch` ブロックでそのオブジェクトのプロパティを参照することができます。

```js
// UserException というオブジェクト型を作成
Expand Down Expand Up @@ -334,7 +334,7 @@ catch (err) {
}
```

> **Note:** **ベストプラクティス:** `catch` ブロック内でコンソールにエラーをログ出力する場合は、`console.log()` よりも `console.error()` がデバッグ目的では推奨されています。これはメッセージをエラーとして書式化し、ページによって生成されたエラーメッセージの一覧に追加します。
> **メモ:** **ベストプラクティス:** `catch` ブロック内でコンソールにエラーをログ出力する場合は、`console.log()` よりも `console.error()` がデバッグ目的では推奨されています。これはメッセージをエラーとして書式化し、ページによって生成されたエラーメッセージの一覧に追加します。

#### `finally` ブロック

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ var var2 = 4;
</tbody>
</table>

> **Note:** `=>` は演算子ではなく、[アロー関数](/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)を表す記法です。
> **メモ:** `=>` は演算子ではなく、[アロー関数](/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)を表す記法です。

### 算術演算子

Expand Down
6 changes: 3 additions & 3 deletions files/ja/web/javascript/guide/functions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ function square(n) { return n * n }

関数のスコープは自身が宣言された関数内、あるいは最上位で宣言されたのであればプログラム全体になります。

> **Note:** この動作は、上記の構文 (すなわち `function funcName(){}`) を用いて関数を定義したときに限ることに注意してください。次のコードは動作しません。
> **メモ:** この動作は、上記の構文 (すなわち `function funcName(){}`) を用いて関数を定義したときに限ることに注意してください。次のコードは動作しません。
>
> これは、関数の巻き上げが*関数式*ではなく*関数宣言*でしか機能しないことを意味しています。
>
Expand Down Expand Up @@ -476,7 +476,7 @@ var getCode = (function() {
getCode(); // シークレットコードを返す
```

> **Note:** クロージャを使用する際に注意すべき落とし穴がいくつかあります。
> **メモ:** クロージャを使用する際に注意すべき落とし穴がいくつかあります。
>
> 取り囲まれている関数で外部スコープの変数と同じ名前の変数を定義した場合、外部スコープにある変数を再び参照する方法がなくなります。 (プログラムが内部スコープを終了するまで、内部スコープ変数は外部変数を「上書き」します。)
>
Expand Down Expand Up @@ -529,7 +529,7 @@ myConcat('; ', 'elephant', 'giraffe', 'lion', 'cheetah');
myConcat('. ', 'sage', 'basil', 'oregano', 'pepper', 'parsley');
```

> **Note:** 変数 `arguments` は「配列風の変数」であり、配列ではありません。添字が数値であることと `length` プロパティがあることで、配列風となってはいます。しかし、配列操作のメソッドのすべてを持っているわけではありません。
> **メモ:** 変数 `arguments` は「配列風の変数」であり、配列ではありません。添字が数値であることと `length` プロパティがあることで、配列風となってはいます。しかし、配列操作のメソッドのすべてを持っているわけではありません。

さらなる情報については、JavaScript リファレンスの {{jsxref("Function")}} オブジェクトをご覧ください。

Expand Down
16 changes: 8 additions & 8 deletions files/ja/web/javascript/guide/grammar_and_types/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ JavaScript では、命令は{{Glossary("Statement", "文")}} (statement) と呼

文が単独の行で書かれている場合、文の後にセミコロンは必要ではありません。しかし、行の中に複数の文が必要な場合は、セミコロンで区切る*必要*があります。

> **Note:** ECMAScript も文末に自動的にセミコロンを挿入する規則があります ([ASI](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion))。(詳しくは、JavaScript の [字句文法](/ja/docs/Web/JavaScript/Reference/Lexical_grammar)についての詳細なリファレンスを参照してください。)
> **メモ:** ECMAScript も文末に自動的にセミコロンを挿入する規則があります ([ASI](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion))。(詳しくは、JavaScript の [字句文法](/ja/docs/Web/JavaScript/Reference/Lexical_grammar)についての詳細なリファレンスを参照してください。)

必須ではないとしても、文の後に常にセミコロンを記述することをお勧めします。これによって、コード中にバグが発生する機会を減らすことができます。

Expand All @@ -45,7 +45,7 @@ JavaScript のソーステキストは左から右にスキャンされ、_ト

コメントはホワイトスペースのように扱われ、スクリプトの実行から除外されます。

> **Note:** 一部の JavaScript ファイルの先頭で、`#!/usr/bin/env node` のような第三の種類のコメントを見かけることもあるかもしれません。
> **メモ:** 一部の JavaScript ファイルの先頭で、`#!/usr/bin/env node` のような第三の種類のコメントを見かけることもあるかもしれません。
>
> これは**ハッシュバンコメント**構文と呼ばれ、スクリプトの実行に使用したい特定の JavaScript エンジンへのパスを指定するのに使用される特殊なコメントです。詳しくは[ハッシュバンコメント](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#Hashbang_comments)を参照してください。

Expand Down Expand Up @@ -357,7 +357,7 @@ y = 42 + ' が答え' // "42 が答え"

`parseInt` は整数のみを返すので、小数は切り捨てられます。

> **Note:** さらに、`parseInt` を使う最も良い方法は、常に基数を引数に含めるようにすることです。基数の引数は使用されている*基数*法を指定するのに使われます。
> **メモ:** さらに、`parseInt` を使う最も良い方法は、常に基数を引数に含めるようにすることです。基数の引数は使用されている*基数*法を指定するのに使われます。

```js
parseInt('101', 2) // 5
Expand Down Expand Up @@ -393,11 +393,11 @@ JavaScript では値の表現に*リテラル*を使います。これらは固
let coffees = ['French Roast', 'Colombian', 'Kona'];
```

> **Note:** 配列リテラルは*オブジェクト初期化子*の一種です。[オブジェクト初期化子の使用](/ja/docs/Web/JavaScript/Guide/Working_with_Objects#Using_object_initializers)を参照してください。
> **メモ:** 配列リテラルは*オブジェクト初期化子*の一種です。[オブジェクト初期化子の使用](/ja/docs/Web/JavaScript/Guide/Working_with_Objects#Using_object_initializers)を参照してください。

トップレベルのスクリプト内でリテラルを用いて配列を作成した場合、JavaScript は配列リテラルを含む式を評価するたびに配列を解釈します。さらに関数内で使用されたリテラルは、関数が呼び出されるたびに生成されます。

> **Note:** 配列リテラルは `Array` オブジェクトでもあります。`Array` オブジェクトの詳細は {{jsxref("Array")}} と[インデックス付きコレクション](/ja/docs/Web/JavaScript/Guide/Indexed_collections)をご覧ください。
> **メモ:** 配列リテラルは `Array` オブジェクトでもあります。`Array` オブジェクトの詳細は {{jsxref("Array")}} と[インデックス付きコレクション](/ja/docs/Web/JavaScript/Guide/Indexed_collections)をご覧ください。

#### 配列リテラルでの余分なカンマ

Expand All @@ -417,7 +417,7 @@ let fish = ['Lion', , 'Angel'];

次の例では、配列の長さ (`length`) は 3 です。`myList[3]` は存在しません。リスト内の他のカンマはすべて、新しい要素を示します。

> **Note:** 末尾にカンマを置くと古いブラウザーでエラーになる場合があるので、取り除くのが最善です。
> **メモ:** 末尾にカンマを置くと古いブラウザーでエラーになる場合があるので、取り除くのが最善です。

```js
let myList = ['home', , 'school', ];
Expand All @@ -443,7 +443,7 @@ let myList = ['home', , 'school', , ];

真偽値型は 2 つのリテラル値、`true` と `false` があります。

> **Note:** **忠告:** プリミティブ型の真偽値である `true` や `false` と、{{jsxref("Boolean")}} オブジェクトの `true` や `false` という値とを混同してはいけません。
> **メモ:** プリミティブ型の真偽値である `true` や `false` と、{{jsxref("Boolean")}} オブジェクトの `true` や `false` という値とを混同してはいけません。
>
> Boolean オブジェクトは、プリミティブな真偽値型のラッパーです。詳細は {{jsxref("Boolean")}} を参照してください。

Expand Down Expand Up @@ -497,7 +497,7 @@ let myList = ['home', , 'school', , ];

オブジェクトリテラルとは、プロパティ名とそれに関連付けられたオブジェクトの値との 0 個以上の組が波括弧 (`{}`) で囲まれたもので作られたリストです。

> **Warning:** **オブジェクトリテラルを文の先頭で使わないようにしてください。** `{` がブロックの始まりと解釈されるため、エラーや予期せぬ動作を引き起こすことになります。
> **警告:** **オブジェクトリテラルを文の先頭で使わないようにしてください。** `{` がブロックの始まりと解釈されるため、エラーや予期せぬ動作を引き起こすことになります。

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

Expand Down
Loading