是什么 !!JavaScript 中的(不是不是)运算符?

What is the !! (not not) operator in JavaScript?(是什么 !!JavaScript 中的(不是不是)运算符?)

本文介绍了是什么 !!JavaScript 中的(不是不是)运算符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到一些代码似乎使用了我不认识的运算符,以两个感叹号的形式出现,例如:!!.谁能告诉我这个运算符是做什么的?

I saw some code that seems to use an operator I don't recognize, in the form of two exclamation points, like so: !!. Can someone please tell me what this operator does?

我看到这个的背景是,

this.vertical = vertical !== undefined ? !!vertical : this.vertical;

推荐答案

Object 转换为 boolean.如果为假(如0nullundefined等),则为false,否则为false, .

Converts Object to boolean. If it was falsey (e.g. 0, null, undefined, etc.), it will be false, otherwise, true.

!oObject  // inverted boolean
!!oObject // non inverted boolean so true boolean representation

所以 !! 不是运算符,它只是 ! 运算符两次.

So !! is not an operator, it's just the ! operator twice.

真实世界示例测试 IE 版本":

Real World Example "Test IE version":

const isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);  
console.log(isIE8); // returns true or false 

如果你⇒

console.log(navigator.userAgent.match(/MSIE 8.0/));  
// returns either an Array or null  

但是如果你⇒

console.log(!!navigator.userAgent.match(/MSIE 8.0/));  
// returns either true or false

这篇关于是什么 !!JavaScript 中的(不是不是)运算符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:是什么 !!JavaScript 中的(不是不是)运算符?

基础教程推荐