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