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/

到此这篇关于JavaScript (!!) 中的双感叹号是干什么用的?的文章就介绍到这了,更多相关JavaScript (!!) 双感叹号内容请搜索阿兔在线工具以前的文章或继续浏览下面的相关文章希望大家以后多多支持阿兔在线工具!

点赞(0)

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部