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