JavaScript 中的感嘆號運算子

Jagathish 2023年10月12日
  1. 語法
  2. 示例 3
  3. 示例 4
  4. JavaScript 中的雙非運算子!!
  5. 語法
JavaScript 中的感嘆號運算子

本教程將介紹 JavaScript 中邏輯非(!)運算子的行為和使用。

!運算子將運算元轉換為布林值並返回轉換後的值的倒數。

語法

inverse = !expression

當我們應用!運算子到假值的時候,我們得到 true 作為結果。虛假值包括 - false0-00n""nullundefinedNaN

當我們應用!運算子到真值,我們得到作為結果。除了提到的虛假值之外,所有值都是真實值。

示例 1

// boolean values
console.log('!true =>', !true);    // returns false
console.log('!false =>', !false);  // returns true

輸出:

!true => false
!false => true

在上面的程式碼中,

  • 應用!運算子為 true 值,返回 false
  • 應用!運算子為 false 值,則返回 true

示例 2

// string values
console.log('!(\'\') =>', !(''));                             // returns true
console.log('!(\'truthy_string\') => ', !('truthy_string'));  // returns false

輸出:

!('') => true
!('truthy_string') => false

在上面的程式碼中,

  • 應用!運算子為空字串(空字串表示假值),返回 true
  • 應用!運算子對非空字串(非空字串表示真值),返回 false

示例 3

// number values
console.log('!0 => ', !0);      // returns true
console.log('!100 => ', !100);  // returns false

輸出:

!0 => true
!100 => false

在上面的程式碼中,

  • 應用!運算子到 00 表示假值),返回 true
  • 應用!運算子到 100(非零值表示 truthy 值),返回 false

示例 4

console.log('!null => ', !null);            // true
console.log('!undefined => ', !undefined);  // true
console.log('!NaN => ', !NaN);              // true

輸出:

!null => true
!undefined => true
!NaN => true

我們已經應用了!運算子為假值。對於所有情況,我們得到了真實的結果。

示例 5

function returnsTruthyValue() {
  return 100;
}

function returnsFalsyValue() {
  return 0;
}
// apply ! to the return value
console.log('!returnsTruthyValue() =>', !returnsTruthyValue());  // false
console.log('!returnsFalsyValue() =>', !returnsFalsyValue());    // true

輸出:

"!returnsTruthyValue() => false
"!returnsFalsyValue() => true

在上面的程式碼中,我們建立了兩個函式。

  1. returnsTruthyValue 函式將返回 100(真實值)。
  2. returnsFalsyValue 函式將返回 0(假值)。

當我們在函式呼叫中應用!時,!將應用於函式返回的值。 !returnsTruthyValue() 將適用 !運算子到 returnsTruthyValue 函式返回的值。所以,

  • returnsTruthyValue() 函式應用!運算子,將返回 false
  • returnsFalsyValue() 函式中使用!運算子將返回 true

JavaScript 中的雙非運算子!!

!!運算子將為真值返回 true,為假值返回 false。此運算子用於將值轉換為布林值。

語法

!!expression

!!將執行兩個操作。

  1. 將表示式的值轉換為布林值並對其應用逆運算。
  2. 同樣,逆向應用於該值。

例子

console.log('!!true =>', !!true)  // true
console.log('!! 0 =>', !!0)       // false

輸出:

!!true => true
!! 0 => false

在上面的程式碼中,

  • !!運算子應用於 true,它將首先將 true 轉換為 false,然後再次將 false 轉換為 true
  • !!運算子應用於 0,它將首先將 0 轉換為布林值(0 轉換為 false)並對其應用逆運算(現在該值將是 true)。然後再一次,將反轉應用於先前反轉的值(現在該值將是 false)。

相關文章 - JavaScript Operator