From ab7ecf52a8bd0a32f63dfc2767af2daa5f1c6864 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Thu, 17 Feb 2022 10:12:20 +0900 Subject: 2021/07/21 時点の英語版に同期 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/operators/logical_not/index.md | 126 ++++++++++----------- 1 file changed, 57 insertions(+), 69 deletions(-) (limited to 'files/ja/web') diff --git a/files/ja/web/javascript/reference/operators/logical_not/index.md b/files/ja/web/javascript/reference/operators/logical_not/index.md index a702e6ecdd..e1162980fe 100644 --- a/files/ja/web/javascript/reference/operators/logical_not/index.md +++ b/files/ja/web/javascript/reference/operators/logical_not/index.md @@ -3,105 +3,93 @@ title: 論理否定 (!) slug: Web/JavaScript/Reference/Operators/Logical_NOT tags: - JavaScript - - Language feature - - Logical Operator - - Operator - - Reference - - 演算子 - 言語機能 - 論理演算子 + - 演算子 + - リファレンス +browser-compat: javascript.operators.logical_not translation_of: Web/JavaScript/Reference/Operators/Logical_NOT --- -
{{jsSidebar("Operators")}}
- -

論理否定 (!) 演算子 (論理反転、否定) は、真値を取ると偽値になり、その逆も同様です。これは通常 {{jsxref("Boolean")}} (論理型) の値に使用されます。論理型以外の値に使用した場合、単一のオペランドが true に変換できる場合は false を返し、それ以外は true を返します。

+{{jsSidebar("Operators")}} -
{{EmbedInteractiveExample("pages/js/expressions-logical-not.html", "shorter")}}
+論理否定 (`!`) 演算子 (論理反転、否定) は、真値を取ると偽値になり、その逆も同様です。これは通常論理型 (ブール型) の値に使用されます。論理型以外の値に使用した場合、単一のオペランドが `true` に変換できる場合は `false` を返し、それ以外は `true` を返します。 - +{{EmbedInteractiveExample("pages/js/expressions-logical-not.html", "shorter")}} -

構文

+## 構文 -
!expr
-
+```js +!expr +``` -

解説

+## 解説 -

単一のオペランドが true に変換できる場合は false を返し、それ以外は true を返します。

+単一のオペランドが `true` に変換できる場合は `false` を返し、それ以外は `true` を返します。 -

ある値が true に変換できる場合、その値は真値 ({{Glossary("truthy")}}) と呼ばれます。ある値が false に変換できる場合、その値は偽値 ({{Glossary("falsy")}}) と呼ばれます。

+ある値が `true` に変換できる場合、その値は真値 ({{Glossary("truthy")}}) と呼ばれます。ある値が `false` に変換できる場合、その値は偽値 ({{Glossary("falsy")}}) と呼ばれます。 -

false に変換することができる式の例を示します。

+false に変換することができる式の例を示します。 - +- `null` +- `NaN` +- `0` +- 空文字列 (`""` または `''` または ` `` `) +- `undefined` -

! 演算子は論理値以外のオペランドに対して使用することができますが、返値が常に boolean プリミティブに変換することが可能であるため、論理演算子と見なすことができます。返値 (または一般的な式) を対応する論理値に明示的に変換するには、二重の否定演算子または {{jsxref("Global_Objects/Boolean/Boolean", "Boolean")}} コンストラクターを使用してください。

+`!` 演算子は論理値以外のオペランドに対して使用することができますが、返値が常に[論理型プリミティブ](/ja/docs/Web/JavaScript/Data_structures#論理型_boolean)に変換することが可能であるため、論理演算子と見なすことができます。返値 (または一般的な式) を対応する論理値に明示的に変換するには、二重の[否定演算子](/ja/docs/Web/JavaScript/Reference/Operators/Logical_NOT)または {{jsxref("Global_Objects/Boolean/Boolean", "Boolean")}} コンストラクターを使用してください。 -

+## 例 -

否定の使用

+### 否定の使用 -

以下のコードは ! (論理否定) 演算子の例を示しています。

+以下のコードは `!` (論理否定) 演算子の例を示しています。 -
n1 = !true               // !t returns false
-n2 = !false              // !f returns true
-n3 = !''                 // !f returns true
-n4 = !'Cat'              // !t returns false
+```js +n1 = !true // !t は false を返す +n2 = !false // !f は true を返す +n3 = !'' // !f は true を返す +n4 = !'Cat' // !t は false を返す +``` -

二重否定 (!!)

+### 二重否定 (`!!`) -

複数の否定演算子を連続して使用することで、明示的にあらゆる値を対応する論理型プリミティブに変換することができます。変換は値の「真値性」または「偽値性」に基づいて行われます ({{Glossary("truthy")}} および {{Glossary("falsy")}} を参照)。

+複数の否定演算子を連続して使用することで、明示的にあらゆる値を対応する[論理型プリミティブ](/ja/docs/Web/JavaScript/Data_structures#論理型_boolean)に変換することができます。変換は値の「真値性」または「偽値性」に基づいて行われます ({{Glossary("truthy")}} および {{Glossary("falsy")}} を参照)。 -

同じ変換は {{jsxref("Global_Objects/Boolean/Boolean", "Boolean")}} 関数を通じて行うこともできます。

+同じ変換は {{jsxref("Global_Objects/Boolean/Boolean", "Boolean")}} 関数を通じて行うこともできます。 -
n1 = !!true                   // !!truthy returns true
-n2 = !!{}                     // !!truthy returns true: any object is truthy...
-n3 = !!(new Boolean(false))   // ...even Boolean objects with a false .valueOf()!
-n4 = !!false                  // !!falsy returns false
-n5 = !!""                     // !!falsy returns false
-n6 = !!Boolean(false)         // !!falsy returns false
+```js +n1 = !!true // !!truthy は true を返す +n2 = !!{} // !!truthy は true: *あらゆる*オブジェクトは真値になります... +n3 = !!(new Boolean(false)) // ... .valueOF() が false の Boolean オブジェクトであっても +n4 = !!false // !!falsy は false を返す +n5 = !!"" // !!falsy は false を返す +n6 = !!Boolean(false) // !!falsy は false を返す +``` -

否定同士の変換

+### 否定同士の変換 -

以下の操作を論理値で行った場合、

+以下の操作を**論理値**で行った場合、 -
!!bCondition
+```js +!!bCondition +``` -

常に以下のものと等しくなります。

+常に以下のものと等しくなります。 -
bCondition
+```js +bCondition +``` -

仕様書

+## 仕様書 - - - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#prod-LogicalORExpression', 'Logical OR expression')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.logical_or")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- {{jsxref("Boolean")}} +- {{Glossary("Truthy", "真値")}} +- {{Glossary("Falsy", "偽値")}} -- cgit v1.2.3-54-g00ecf