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

2023-11-25

我看到一些代码似乎使用了我不认识的运算符,以两个感叹号的形式,如下所示:!!。有人可以告诉我这个操作员是做什么的吗?

我看到这个的背景是,

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

它转换Object to boolean。如果它是假的(例如,0, null, undefined等),这将是false, 否则,true.

!object  // Inverted Boolean
!!object // Noninverted Boolean, so true Boolean representation

So !!不是操作员;这只是!操作员两次。

这样做可能更简单:

Boolean(object) // Boolean

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

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

If you ⇒

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么 !! JavaScript 中的(不是 not)运算符? 的相关文章

随机推荐

  • Window.open 作为模式弹出窗口?

    我要开window open作为模式弹出窗口 var features resizable yes status no scroll no help no center yes width 460 height 140 menubar no
  • 在 python shell 中向前和向后打印带有点的文本“正在加载”

    我想打印文本 正在加载 但它的点会前后移动 在shell 我正在创建一个文字游戏 因此它看起来会更好 我知道慢慢写一个字 但点也得往后退 我想我应该忘记点回来 为此 import sys import time shell sys stdo
  • ios 如何处理大文件上传?

    我的应用程序需要从用户手机上传视频文件 然后在服务器上进行处理 问题是文件大小可能达到 200 MB 以上 并且用户不会保持应用程序打开以等待文件上传 由于苹果不允许应用程序在后台运行超过有限的时间 如何确保我的文件已上传 我正在使用 af
  • Angular2 typescript 中的第三方 JS

    我对 Angular 和 TypeScript 很陌生 所以这可能是非常基本的 我正在尝试在模板中制作带有图表 使用 Chart js 的 angular2 组件 我意识到有一个图表指令正在开发 专门使用 Chart JS 但我想了解如何做
  • 在名称与其 getter 不同的字段上使用 jackson 注释 JsonUnwrapped

    我有一堂课 比如 class Car private Engine myEngine JsonProperty color private String myColor JsonProperty maxspeed private int m
  • Wikidata - SPARQL 查询的请求限制

    查询次数有限制吗Wikidata 仅 SPARQL 查询 不编辑 我找不到任何关于此的官方文档 我想知道每分钟 小时 以及每个 IP 地址 的强查询限制有多大 是的 有限制 单个查询当前限制为 1 分钟运行时间 文档在这里 https ww
  • 不变性的真正定义?

    我想知道不变性是如何定义的 如果这些值没有公开 因此无法修改 那么这就足够了吗 是否可以在类型内部修改值 而不是由类型的客户修改 或者只能将它们设置在构造函数中 如果是这样 在双重初始化的情况下 使用this结构上的关键字等 对于不可变类型
  • app.js 中的全局变量可在路由中访问吗?

    我如何设置一个变量app js并使其在所有路线上都可用 至少在index js文件位于路径中 使用express框架和node js 实际上 使用 Express 对象上可用的 set 和 get 方法可以很容易地做到这一点 示例如下 假设
  • 如何在 MATLAB 中删除轴

    axis off不工作 function displayResults filename hObject eventdata handles Open filename file for reading fid fopen filename
  • 为什么Java的Arrays.sort方法对不同的类型使用两种不同的排序算法?

    Java 6 的Arrays sort方法对基元数组使用快速排序 对对象数组使用合并排序 我相信大多数时候快速排序比合并排序更快并且消耗更少的内存 我的实验支持这一点 尽管两种算法都是 O n log n 那么为什么不同的类型使用不同的算法
  • AFNetworking-2 waitUntilFinished 不起作用

    我知道有另一个类似的问题 但它适用于旧版本的 AFNetworking 而且并没有真正回答它 我有以下代码 AFHTTPRequestOperationManager manager AFHTTPRequestOperationManage
  • Google Maps API a.lat 不是函数错误

    我正在创建一个代码 可以通过使用分割作为分隔符来协调 CSV 文件中的数据 并计算两个输入坐标之间的距离 但结果总是显示错误a lat is not a function 我已经在网上浏览了有关此特定错误类型的信息 但似乎找不到正确的解决方
  • C# 中可调整大小的表格布局面板

    我发现 c net 2 0 中的表格布局面板非常原始 我希望允许我的用户调整表格布局面板中的列大小 但没有现成的选项可以执行此操作 有没有办法至少找出光标是否直接位于单元格的任何边框上 如果是 则哪个单元格位于其下方 可能有了这些信息 我们
  • 如何使用应用内自定义键盘的按钮输入文本

    我制作了一个应用程序内自定义键盘 它取代了系统键盘 并在我点击内部时弹出UITextField 这是我的代码 class ViewController UIViewController var myCustomKeyboard UIView
  • 数据表过滤:linq 与过滤器?

    过滤内存对象 数据表 这样做之间有很大的不同吗 var t dt Select id 2 vs var g dt AsEnumerable Where f gt f id ToString 2 我假设DataTable Select需要更多
  • 在 3D 世界中渲染 2D 精灵?

    假设我有精灵的 png 如何在 OpenGL 中渲染 2D 精灵 将图像作为我想要实现的效果的示例 另外 我想在屏幕上覆盖武器 例如底部图像中的步枪 有谁知道我如何实现这两种效果 任何帮助是极大的赞赏 在 3D 术语中 这称为 广告牌 广告
  • 计算太阳位于地平线以下/之上 X 度的时间

    我想知道太阳在地平线以下 之上 X 度的时间是什么时候 例如 我想找到太阳位于地平线以下 19 75 度的时间 我认为这与函数中的最高点有关date sunrise date sunset但我不确定 提前致谢 收集您需要的日期的太阳星历数据
  • 当我运行 Angular 4 应用程序时,哪个文件首先运行该应用程序?

    我正在使用 Angular 4 我有一个问题 当我运行项目并使用 ngserve 时 项目中的哪个文件首先呈现 有很多文件 例如main ts angular cli json app module我不明白当我运行 ngserve 时发生了
  • 从 ElasticSearch 中的数组中删除元素/对象,然后进行匹配查询

    我在尝试从 elasticsearch 中的数组中删除元素 对象时遇到问题 这是索引的映射 example1 mappings doc properties locations type geo point postDate type da
  • 是什么 !! JavaScript 中的(不是 not)运算符?

    我看到一些代码似乎使用了我不认识的运算符 以两个感叹号的形式 如下所示 有人可以告诉我这个操作员是做什么的吗 我看到这个的背景是 this vertical vertical undefined vertical this vertical