JavaScript 中的感嘆號運算子

Jagathish 2023年1月30日 2022年5月10日
  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