From 7fe91b7974cad70612224a6d368f87948a40e9e2 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 9 Jan 2022 13:04:44 +0900 Subject: Web/JavaScript/Reference/Global_Objects 以下のプロパティを変換準備 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/global_objects/nan/index.html | 93 -------------- .../reference/global_objects/nan/index.md | 93 ++++++++++++++ .../reference/global_objects/null/index.html | 76 ----------- .../reference/global_objects/null/index.md | 76 +++++++++++ .../reference/global_objects/undefined/index.html | 141 --------------------- .../reference/global_objects/undefined/index.md | 141 +++++++++++++++++++++ 6 files changed, 310 insertions(+), 310 deletions(-) delete mode 100644 files/ja/web/javascript/reference/global_objects/nan/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/nan/index.md delete mode 100644 files/ja/web/javascript/reference/global_objects/null/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/null/index.md delete mode 100644 files/ja/web/javascript/reference/global_objects/undefined/index.html create mode 100644 files/ja/web/javascript/reference/global_objects/undefined/index.md (limited to 'files/ja/web/javascript') diff --git a/files/ja/web/javascript/reference/global_objects/nan/index.html b/files/ja/web/javascript/reference/global_objects/nan/index.html deleted file mode 100644 index 8b8d826131..0000000000 --- a/files/ja/web/javascript/reference/global_objects/nan/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: NaN -slug: Web/JavaScript/Reference/Global_Objects/NaN -tags: - - JavaScript - - Property - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/NaN ---- -
{{jsSidebar("Objects")}}
- -

グローバルプロパティ NaN非数 (Not-A-Number) を表す値です。

- -

{{js_property_attributes(0,0,0)}}

- -
{{EmbedInteractiveExample("pages/js/globalprops-nan.html")}}
- - - -

解説

- -

NaNグローバルオブジェクトのプロパティです。言い換えれば、グローバルスコープにある変数です。

- -

NaN の初期値は非数であり、{{jsxref("Number.NaN")}} の値と同等です。最近のブラウザーであれば、 NaN は設定、書き込みがともに不可能なプロパティとなっています。そうでない場合であっても、オーバーライドは無効となります。プログラムの中で NaN を使用するのは、むしろまれなことです。

- -

NaN を返す演算には5種類があります。

- - - -

- -

NaN に対するテスト

- -

NaN は別の NaN 値を含むあらゆる数と (==!====!== によって) 同じではないと比較されます。ある値が NaN かどうかを的確に判定するには {{jsxref("Number.isNaN()")}} か {{jsxref("Global_Objects/isNaN", "isNaN()")}} を使用してください。あるいは自己比較を実行しましょう。 NaN は、また NaN だけが、自身と同等ではないと比較評価されます。

- -
NaN === NaN;        // false
-Number.NaN === NaN; // false
-isNaN(NaN);         // true
-isNaN(Number.NaN);  // true
-Number.isNaN(NaN);  // true
-
-function valueIsNaN(v) { return v !== v; }
-valueIsNaN(1);          // false
-valueIsNaN(NaN);        // true
-valueIsNaN(Number.NaN); // true
-
- -

ただし、 isNaN()Number.isNaN() には違いがあることに気をつけてください。前者は、値そのものが NaN であったり、値の変換の結果 NaN になる場合に true を返します。後者は値そのものが NaN のときにだけ true を返します。

- -
isNaN('hello world');        // true
-Number.isNaN('hello world'); // false
-
- -

加えて、配列メソッドの中には NaN を見つけることができるもの、できないものがあります。

- -
let arr = [2, 4, NaN, 12];
-arr.indexOf(NaN);                      // -1 (false)
-arr.includes(NaN);                     // true
-arr.findIndex(n => Number.isNaN(n));   // 2
-
- -

仕様書

- - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}
- -

ブラウザーの互換性

- -

{{Compat("javascript.builtins.NaN")}}

- -

関連情報

- - diff --git a/files/ja/web/javascript/reference/global_objects/nan/index.md b/files/ja/web/javascript/reference/global_objects/nan/index.md new file mode 100644 index 0000000000..8b8d826131 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/nan/index.md @@ -0,0 +1,93 @@ +--- +title: NaN +slug: Web/JavaScript/Reference/Global_Objects/NaN +tags: + - JavaScript + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/NaN +--- +
{{jsSidebar("Objects")}}
+ +

グローバルプロパティ NaN非数 (Not-A-Number) を表す値です。

+ +

{{js_property_attributes(0,0,0)}}

+ +
{{EmbedInteractiveExample("pages/js/globalprops-nan.html")}}
+ + + +

解説

+ +

NaNグローバルオブジェクトのプロパティです。言い換えれば、グローバルスコープにある変数です。

+ +

NaN の初期値は非数であり、{{jsxref("Number.NaN")}} の値と同等です。最近のブラウザーであれば、 NaN は設定、書き込みがともに不可能なプロパティとなっています。そうでない場合であっても、オーバーライドは無効となります。プログラムの中で NaN を使用するのは、むしろまれなことです。

+ +

NaN を返す演算には5種類があります。

+ + + +

+ +

NaN に対するテスト

+ +

NaN は別の NaN 値を含むあらゆる数と (==!====!== によって) 同じではないと比較されます。ある値が NaN かどうかを的確に判定するには {{jsxref("Number.isNaN()")}} か {{jsxref("Global_Objects/isNaN", "isNaN()")}} を使用してください。あるいは自己比較を実行しましょう。 NaN は、また NaN だけが、自身と同等ではないと比較評価されます。

+ +
NaN === NaN;        // false
+Number.NaN === NaN; // false
+isNaN(NaN);         // true
+isNaN(Number.NaN);  // true
+Number.isNaN(NaN);  // true
+
+function valueIsNaN(v) { return v !== v; }
+valueIsNaN(1);          // false
+valueIsNaN(NaN);        // true
+valueIsNaN(Number.NaN); // true
+
+ +

ただし、 isNaN()Number.isNaN() には違いがあることに気をつけてください。前者は、値そのものが NaN であったり、値の変換の結果 NaN になる場合に true を返します。後者は値そのものが NaN のときにだけ true を返します。

+ +
isNaN('hello world');        // true
+Number.isNaN('hello world'); // false
+
+ +

加えて、配列メソッドの中には NaN を見つけることができるもの、できないものがあります。

+ +
let arr = [2, 4, NaN, 12];
+arr.indexOf(NaN);                      // -1 (false)
+arr.includes(NaN);                     // true
+arr.findIndex(n => Number.isNaN(n));   // 2
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}
+ +

ブラウザーの互換性

+ +

{{Compat("javascript.builtins.NaN")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/null/index.html b/files/ja/web/javascript/reference/global_objects/null/index.html deleted file mode 100644 index 09938e81f4..0000000000 --- a/files/ja/web/javascript/reference/global_objects/null/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: 'null' -slug: Web/JavaScript/Reference/Global_Objects/null -tags: - - JavaScript - - Language feature - - Literal - - Primitive -translation_of: Web/JavaScript/Reference/Global_Objects/null ---- -
{{jsSidebar("Objects")}}
- -

null という値は、意図的にオブジェクトの値が存在しないことを表します。これは JavaScript のプリミティブ値の 1 つであり、ブール演算では falsy として扱われます。

- -
{{EmbedInteractiveExample("pages/js/globalprops-null.html")}}
- - - -

構文

- -
null
- -

説明

- -

null 値は null というリテラルです。{{jsxref("Global_Objects/undefined","undefined")}} のようなグローバルオブジェクトのプロパティではありません。代わりに、 null は識別の欠如を表し、変数がオブジェクトを指してないことを示します。API においては、通常はオブジェクトが返されるところで、関連したオブジェクトがない場合に null がよく渡されます。

- -
// foo が存在せず、定義も初期化もされていない場合:
-foo; //ReferenceError: foo is not defined
- -
// foo が存在しているが、型も値も持たない場合:
-var foo = null;
-foo; //null
-
- -

nullundefined の違い

- -

nullundefined をチェックする際は、等価 (==) と 厳密等価 (===) 演算子の違い に注意してください(前者では型変換が行われます)。

- -
typeof null          // "object" (歴史的な理由で "null" ではありません)
-typeof undefined     // "undefined"
-null === undefined   // false
-null  == undefined   // true
-null === null        // true
-null == null         // true
-!null                // true
-isNaN(1 + null)      // false
-isNaN(1 + undefined) // true
- -

仕様

- - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-null-value', 'null value')}}
- -

ブラウザー実装状況

- - - -

{{Compat("javascript.builtins.null")}}

- -

関連情報

- - diff --git a/files/ja/web/javascript/reference/global_objects/null/index.md b/files/ja/web/javascript/reference/global_objects/null/index.md new file mode 100644 index 0000000000..09938e81f4 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/null/index.md @@ -0,0 +1,76 @@ +--- +title: 'null' +slug: Web/JavaScript/Reference/Global_Objects/null +tags: + - JavaScript + - Language feature + - Literal + - Primitive +translation_of: Web/JavaScript/Reference/Global_Objects/null +--- +
{{jsSidebar("Objects")}}
+ +

null という値は、意図的にオブジェクトの値が存在しないことを表します。これは JavaScript のプリミティブ値の 1 つであり、ブール演算では falsy として扱われます。

+ +
{{EmbedInteractiveExample("pages/js/globalprops-null.html")}}
+ + + +

構文

+ +
null
+ +

説明

+ +

null 値は null というリテラルです。{{jsxref("Global_Objects/undefined","undefined")}} のようなグローバルオブジェクトのプロパティではありません。代わりに、 null は識別の欠如を表し、変数がオブジェクトを指してないことを示します。API においては、通常はオブジェクトが返されるところで、関連したオブジェクトがない場合に null がよく渡されます。

+ +
// foo が存在せず、定義も初期化もされていない場合:
+foo; //ReferenceError: foo is not defined
+ +
// foo が存在しているが、型も値も持たない場合:
+var foo = null;
+foo; //null
+
+ +

nullundefined の違い

+ +

nullundefined をチェックする際は、等価 (==) と 厳密等価 (===) 演算子の違い に注意してください(前者では型変換が行われます)。

+ +
typeof null          // "object" (歴史的な理由で "null" ではありません)
+typeof undefined     // "undefined"
+null === undefined   // false
+null  == undefined   // true
+null === null        // true
+null == null         // true
+!null                // true
+isNaN(1 + null)      // false
+isNaN(1 + undefined) // true
+ +

仕様

+ + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-null-value', 'null value')}}
+ +

ブラウザー実装状況

+ + + +

{{Compat("javascript.builtins.null")}}

+ +

関連情報

+ + diff --git a/files/ja/web/javascript/reference/global_objects/undefined/index.html b/files/ja/web/javascript/reference/global_objects/undefined/index.html deleted file mode 100644 index d4f0e54903..0000000000 --- a/files/ja/web/javascript/reference/global_objects/undefined/index.html +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: undefined -slug: Web/JavaScript/Reference/Global_Objects/undefined -tags: - - JavaScript - - Language feature - - Reference - - 言語機能 -translation_of: Web/JavaScript/Reference/Global_Objects/undefined ---- -
{{jsSidebar("Objects")}}
- -

グローバルの undefined プロパティはプリミティブ値 {{Glossary("Undefined", "undefined")}} を表します。これは JavaScript における{{Glossary("Primitive", "プリミティブ型")}}の一つです。

- -

{{js_property_attributes(0,0,0)}}

- -
{{EmbedInteractiveExample("pages/js/globalprops-undefined.html")}}
- - - -

構文

- -
undefined
- -

解説

- -

undefined は、グローバルオブジェクトのプロパティです。すなわちグローバルスコープ内の変数です。 undefined の初期値はプリミティブ値である {{Glossary("Undefined", "undefined")}} です。

- -

最近のブラウザー (JavaScript 1.8.5 / Firefox 4 以降) での undefined は、 ECMAScript 5 仕様により、設定不可、書込不可のプロパティとなります。 (そうでない場合でも、上書きは避けてください。)

- -

まだ値が代入されていない変数は undefined 型となります。評価しようとしている変数に値が代入されていない場合、メソッドや文も undefined を返します。値を {{jsxref("Statements/return", "return")}} しない関数も undefined を返します。

- -
-

ご注意ください グローバルスコープ以外のスコープでは{{Glossary("Identifier", "識別子")}} (変数名) として使うことができますが (undefined は{{jsxref("Reserved_Words", "予約語", "", 1)}}でないため)、コードの管理やデバッグが困難になるためおすすめできません。

- -
//こんなことはしないこと!
-
-// "foo string" をログ出力する
-(function() {
-  var undefined = 'foo';
-  console.log(undefined, typeof undefined);
-})();
-
-// "foo string" をログ出力する
-(function(undefined) {
-  console.log(undefined, typeof undefined);
-})('foo');
-
-
- -

- -

厳密等価と undefined

- -

undefined と厳密等価・非等価演算子を使って、変数に値があるか調べることができます。次のコードでは、変数 x が定義されていないため、 if 文は true に評価されます。

- -
var x;
-if (x === undefined) {
-  // ここの文は実行される
-}
-else {
-  // ここの文は実行されない
-}
-
- -
-

注: ここでは、標準の等価演算子ではなく厳密等価演算子を使わないといけません。厳密等価演算子とは違い、 x == undefined は、 xnull であるかどうかもチェックするからです。 nullundefined と等しくありません。

- -

詳しくは、{{jsxref("Operators/Comparison_Operators", "比較演算子","","true")}}を参照してください。

-
- -

typeof 演算子と undefined

- -

代わりに、 {{jsxref("Operators/typeof", "typeof")}} を使用することができます。

- -
var x;
-if (typeof x === 'undefined') {
-   // ここの文は実行される
-}
-
- -

{{jsxref("Operators/typeof", "typeof")}} を使う理由の一つとして、こちらは変数が宣言されていなくてもエラーにはなりません。

- -
// 直前まで x は宣言されていない
-if (typeof x === 'undefined') { // エラーなしで true と評価される
-   // ここの文は実行される
-}
-
-if (x === undefined) { // ReferenceError が発生
-
-}
-
- -

しかし、もう一つの選択肢があります。JavaScriptは静的にスコープされた言語なので、変数が宣言されているかどうかを知るには、それが含まれるコンテキストで宣言されているかどうかを見ることで読み取ることができます。

- -

グローバルスコープは{{jsxref("globalThis", "グローバルオブジェクト", "", 1)}}に結びつけられているので、グローバルコンテキストに変数が存在するかどうかのチェックは、グローバルオブジェクトにプロパティが存在することを、 {{jsxref("Operators/in", "in")}} 演算子を使用してチェックすることで行うことができます。

- -
if ('x' in window) {
-  // x がグローバルに定義されている場合のみ、ここの文を実行
-}
- -

void 演算子と undefined

- -

3 つ目の方法として、{{jsxref("Operators/void", "void")}} 演算子があります。

- -
var x;
-if (x === void 0) {
-  // ここの文は実行される
-}
-
-// 直前まで y は宣言されていない
-if (y === void 0) {
-  // ReferenceError: y is not defined が発生
-}
-
- -

仕様書

- - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-undefined', 'undefined')}}
- -

ブラウザーの互換性

- -

{{Compat("javascript.builtins.undefined")}}

- -

関連情報

- - diff --git a/files/ja/web/javascript/reference/global_objects/undefined/index.md b/files/ja/web/javascript/reference/global_objects/undefined/index.md new file mode 100644 index 0000000000..d4f0e54903 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/undefined/index.md @@ -0,0 +1,141 @@ +--- +title: undefined +slug: Web/JavaScript/Reference/Global_Objects/undefined +tags: + - JavaScript + - Language feature + - Reference + - 言語機能 +translation_of: Web/JavaScript/Reference/Global_Objects/undefined +--- +
{{jsSidebar("Objects")}}
+ +

グローバルの undefined プロパティはプリミティブ値 {{Glossary("Undefined", "undefined")}} を表します。これは JavaScript における{{Glossary("Primitive", "プリミティブ型")}}の一つです。

+ +

{{js_property_attributes(0,0,0)}}

+ +
{{EmbedInteractiveExample("pages/js/globalprops-undefined.html")}}
+ + + +

構文

+ +
undefined
+ +

解説

+ +

undefined は、グローバルオブジェクトのプロパティです。すなわちグローバルスコープ内の変数です。 undefined の初期値はプリミティブ値である {{Glossary("Undefined", "undefined")}} です。

+ +

最近のブラウザー (JavaScript 1.8.5 / Firefox 4 以降) での undefined は、 ECMAScript 5 仕様により、設定不可、書込不可のプロパティとなります。 (そうでない場合でも、上書きは避けてください。)

+ +

まだ値が代入されていない変数は undefined 型となります。評価しようとしている変数に値が代入されていない場合、メソッドや文も undefined を返します。値を {{jsxref("Statements/return", "return")}} しない関数も undefined を返します。

+ +
+

ご注意ください グローバルスコープ以外のスコープでは{{Glossary("Identifier", "識別子")}} (変数名) として使うことができますが (undefined は{{jsxref("Reserved_Words", "予約語", "", 1)}}でないため)、コードの管理やデバッグが困難になるためおすすめできません。

+ +
//こんなことはしないこと!
+
+// "foo string" をログ出力する
+(function() {
+  var undefined = 'foo';
+  console.log(undefined, typeof undefined);
+})();
+
+// "foo string" をログ出力する
+(function(undefined) {
+  console.log(undefined, typeof undefined);
+})('foo');
+
+
+ +

+ +

厳密等価と undefined

+ +

undefined と厳密等価・非等価演算子を使って、変数に値があるか調べることができます。次のコードでは、変数 x が定義されていないため、 if 文は true に評価されます。

+ +
var x;
+if (x === undefined) {
+  // ここの文は実行される
+}
+else {
+  // ここの文は実行されない
+}
+
+ +
+

注: ここでは、標準の等価演算子ではなく厳密等価演算子を使わないといけません。厳密等価演算子とは違い、 x == undefined は、 xnull であるかどうかもチェックするからです。 nullundefined と等しくありません。

+ +

詳しくは、{{jsxref("Operators/Comparison_Operators", "比較演算子","","true")}}を参照してください。

+
+ +

typeof 演算子と undefined

+ +

代わりに、 {{jsxref("Operators/typeof", "typeof")}} を使用することができます。

+ +
var x;
+if (typeof x === 'undefined') {
+   // ここの文は実行される
+}
+
+ +

{{jsxref("Operators/typeof", "typeof")}} を使う理由の一つとして、こちらは変数が宣言されていなくてもエラーにはなりません。

+ +
// 直前まで x は宣言されていない
+if (typeof x === 'undefined') { // エラーなしで true と評価される
+   // ここの文は実行される
+}
+
+if (x === undefined) { // ReferenceError が発生
+
+}
+
+ +

しかし、もう一つの選択肢があります。JavaScriptは静的にスコープされた言語なので、変数が宣言されているかどうかを知るには、それが含まれるコンテキストで宣言されているかどうかを見ることで読み取ることができます。

+ +

グローバルスコープは{{jsxref("globalThis", "グローバルオブジェクト", "", 1)}}に結びつけられているので、グローバルコンテキストに変数が存在するかどうかのチェックは、グローバルオブジェクトにプロパティが存在することを、 {{jsxref("Operators/in", "in")}} 演算子を使用してチェックすることで行うことができます。

+ +
if ('x' in window) {
+  // x がグローバルに定義されている場合のみ、ここの文を実行
+}
+ +

void 演算子と undefined

+ +

3 つ目の方法として、{{jsxref("Operators/void", "void")}} 演算子があります。

+ +
var x;
+if (x === void 0) {
+  // ここの文は実行される
+}
+
+// 直前まで y は宣言されていない
+if (y === void 0) {
+  // ReferenceError: y is not defined が発生
+}
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-undefined', 'undefined')}}
+ +

ブラウザーの互換性

+ +

{{Compat("javascript.builtins.undefined")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf