什么是“ +!” 用JavaScript做?

zangw

考虑以下代码

var value = 0;
for (var i=0; i < arguments.length; i++) {
    value += +!!arguments[i];
}

什么是+!!真的吗?这是JavaScript的一种良好编程风格吗?

TJ人群

它不是一个运算符,而是三个:+然后是!两次。

该操作适用!arguments[i]false值转换为true,然后应用于!make false=> true,反之亦然,然后应用一进制+将结果转换为数字(true=> 1false=> 0)。

一个falsy值是任意值,它可以强制到false该falsy值0""NaNnullundefined,当然,falsetruthy值是任何其它值。

因此,最终结果是将真实值的计数添加arguments到中value

这是JavaScript的一种良好编程风格吗?

使用!!把东西truthy成true和东西falsy成false是完全正常的做法。使用一元+将某物转换为数字也是完全正常的做法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用Matlab循环中的变量做某事比什么都不做更快

来自分类Dev

用JavaScript做最短的作业优先算法

来自分类Dev

“”的目的是什么?用Javascript?

来自分类Dev

> |是什么 做bash?

来自分类Dev

什么是“!” 在Prolog中做?

来自分类Dev

用should.js做assert.fail()的最易读的方法是什么

来自分类Dev

什么能抓到{ } 做?

来自分类Dev

DateTime现在是什么= DateTime.Now; 用C#做?

来自分类Dev

Object([])是什么?做?

来自分类Dev

JavaScript为什么要这样做?

来自分类Dev

什么!修改!做

来自分类Dev

long <名称> =(long)<表达式>是什么?用Java做?

来自分类Dev

什么是“ <?” 和“>?” 用C ++做

来自分类Dev

是什么?在Dart做?

来自分类Dev

从'导入{}是什么。做?

来自分类Dev

JavaScript-div的值大于,所以做点什么

来自分类Dev

Bash:“> |是什么 做?

来自分类Dev

File.exists存在什么?用Ruby做?

来自分类Dev

用python扭曲做旋转日志的正确方法是什么?

来自分类Dev

我们可以用'else if'做些什么,而用c语言不能用'else'做

来自分类Dev

什么!修改!做

来自分类Dev

为什么这样做?

来自分类Dev

为什么AsyncTask做弃用的行?在我的代码中?

来自分类Dev

回声$是什么?做?

来自分类Dev

什么是“ <?” 和“>?” 用C ++做

来自分类Dev

int *(*(x [3])())[5]行是什么?用C做?

来自分类Dev

Javascript对象中的命名函数?为什么这样做?

来自分类Dev

用php做网站链接有什么作用?

来自分类Dev

当我做 PARTITION BY 时,ORDER BY 有什么用