JavaScript (!!) 中的双感叹号是干什么用的?

JavaScript (!!) 中的双感叹号是干什么用的?

如果您曾在某人的 JavaScript 代码中注意到双感叹号 (!!),您可能会好奇它的用途和作用。这很简单:这是一种将变量转换为布尔值(真或假)的捷径。让我解释。

 typeof JavaScript!= '静态'

JavaScript 不是静态语言,而是动态语言。这意味着变量可以引用或保存任何类型的值,此外,该类型可以随时更改。无论您喜欢静态语言还是动态语言,都由您决定。

但是,我们当然可以对 JavaScript 中的类型有所了解。以下是 JavaScript 中各种数据类型的快速列表:

  • 布尔值
  • 细绳
  • 数字
  • 目的

布尔数据类型是所有数据类型中最简单的,因为它是单个位值:0(假)或 1(真)。

真与真

我们可以将变量设置为布尔值,并在评估 if 语句时使用它。这是我们的简单示例。

 功能() {  
 var thisIsTrue = true;  
 如果(thisIsTrue){  
 window.alert('当然是!');  
 }  
 }

执行上述函数时,我们将收到警报 那当然是! 因为变量 这是真实的 被设置为布尔值 真的 .

现在,让我们看看 JavaScript 如何评估非布尔值以将其转换为布尔值。

 功能() {  
 无变量 = '';  
 如果(什么都没有){  
 window.alert('没什么');  
 } 别的 {  
 window.alert('嗯?');  
 }  
 }

执行上述函数时,我们将收到警报 嗯? 因为变量的值 没有什么 被评估为假。这就是通常所说的 真相 相对 谬误 .

JavaScript 认为以下值是假的:

  • 很多时候: “”
  • 0
  • 无效的
  • 不明确的

JavaScript 认为以下值为真:

  • 目的: {}
  • 种类: []
  • 非空字符串: “任何事物”
  • 非零数: 3.14
  • 日期: 新日期();

运行您的代码的 JavaScript 引擎将在必要时尝试将值转换(或强制)为布尔值,例如在 if 语句中求值时。

那么为什么要双感叹号呢?

在某些情况下,您可能希望将变量强制转换为显式布尔值。因为?嗯,第一个原因是大多数时候开发人员不使用类型安全的比较运算符。

类型安全的比较运算符是:

  • 严格相等: ===
  • 严格不相等: !==

使用类型安全的比较运算符时,您正在检查值是否相等(或不相等)以及类型是否相同。如果没有类型安全的比较运算符,您将允许 JavaScript 引擎根据真/假逻辑自由地强制您的变量为真或假。

要将 JavaScript 变量转换为布尔值,只需使用两个感叹号:

 功能() {  
 var name = '布赖恩'; //警报'字符串'  
 window.alert(类型名称); //转换为布尔值  
 var bool = !!name; //警报'布尔'  
 window.alert(bool 类型);  
 }

在上面的示例代码中,我们正在转换字符串 “布赖恩” 为了一个值 布尔值 .所以第二个警报将表明该变量现在是 布尔值 勇气。

由 Brian F Love 的博客免费翻译,您可以在此处访问原始文章: https://brianflove.com/2014-09-02/whats-the-double-exclamation-mark-for-in-javascript/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/36122/53311408

posted @ 2022-09-14 08:53  哈哈哈来了啊啊啊  阅读(30)  评论(0编辑  收藏  举报