From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../reference/operators/logical_not/index.html | 109 +++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 files/ja/web/javascript/reference/operators/logical_not/index.html (limited to 'files/ja/web/javascript/reference/operators/logical_not') diff --git a/files/ja/web/javascript/reference/operators/logical_not/index.html b/files/ja/web/javascript/reference/operators/logical_not/index.html new file mode 100644 index 0000000000..9ba7180d85 --- /dev/null +++ b/files/ja/web/javascript/reference/operators/logical_not/index.html @@ -0,0 +1,109 @@ +--- +title: 論理否定 (!) +slug: Web/JavaScript/Reference/Operators/Logical_NOT +tags: + - JavaScript + - Language feature + - Logical Operator + - Operator + - Reference + - 演算子 + - 言語機能 + - 論理演算子 +translation_of: Web/JavaScript/Reference/Operators/Logical_NOT +--- +
{{jsSidebar("Operators")}}
+ +

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

+ +
{{EmbedInteractiveExample("pages/js/expressions-logical-not.html", "shorter")}}
+ + + +

構文

+ +
!expr
+
+ +

解説

+ +

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

+ +

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

+ +

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

+ + + +

! 演算子は論理値以外のオペランドに対して使用することができますが、返値が常に boolean プリミティブに変換することが可能であるため、論理演算子と見なすことができます。返値 (または一般的な式) を対応する論理値に明示的に変換するには、二重の否定演算子または {{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
+ +

二重否定 (!!)

+ +

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

+ +

同じ変換は {{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
+ +

否定同士の変換

+ +

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

+ +
!!bCondition
+ +

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

+ +
bCondition
+ +

仕様書

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

ブラウザーの互換性

+ + + +

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

+ +

関連情報

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