需要解释“+(x > 180)”或“+()”

Need explanation for "+(x > 180)" or "+()"

本文关键字:解释      更新时间:2023-09-26

我在某些javascript代码中发现了这个: +(x > 180)

对于小于 180 的 x,此值的返回值似乎是 0,对于小于 180> 值为 1。

这是简单比较的流畅方法,但我找不到任何用于此比较的文档,并且我不确定它来自哪里(javascript/jquery/other library)。所以我不确定什么时候可以使用它。

我的意思是,我知道 x> 180 是什么,但是围绕它的简单"+()"如何替换整个"if(x>180){return 1;}否则 {返回 0}。

有人可以给我一个解释或链接到这个声明的证明。谢谢

对于小于 180 的 x,此值的返回值似乎是 0,对于小于 180> 值为 1。

对,因为+(x > 180)是两个表达式:

  • x > 180 - 这将评估truefalse

  • +(true or false) - 一元+运算符将其操作数强制为一个数字。 true胁迫1false胁迫0。(这由规范中的 §11.4.6 - 一元+运算符和 §9.3 - ToNumber 定义。

因此,如果x大于180,则最终会得到1,如果x小于或等于180,则0

+简单地转换为数字。

例如:

var str = '20';   // is a string
var num = +str;   // typecasting the string to a number
console.log(num); // returns (int) 20