Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. JavaScript
  3. JavaScript リファレンス
  4. 式と演算子
  5. 論理否定演算子 (!)

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

論理否定演算子 (!)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

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

試してみましょう

const a = 3;const b = -2;console.log(!(a > 0 || b > 0));// 予想される結果: false

構文

js
!x

解説

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

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

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

  • null
  • NaN
  • 0
  • 空文字列 ("" または'' または``)
  • undefined

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

否定の使用

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

js
!true; // !t は false を返す!false; // !f は true を返す!""; // !f は true を返す!"Cat"; // !t は false を返す

二重否定 (!!)

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

同じ変換はBoolean() 関数を通じて行うこともできます。

js
!!true; // !!truthy は true を返す!!{}; // !!truthy は true: あらゆるオブジェクトは真値になります…!!new Boolean(false); // … .valueOf() が false の Boolean オブジェクトであっても!!false; // !!falsy は false を返す!!""; // !!falsy は false を返す!!Boolean(false); // !!falsy は false を返す

否定同士の変換

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

js
!!bCondition

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

js
bCondition

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-logical-not-operator

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp