!+(不是加字符串)在 JavaScript 中是啥意思? [复制]
Posted
技术标签:
【中文标题】!+(不是加字符串)在 JavaScript 中是啥意思? [复制]【英文标题】:What does !+ (not plus string) mean in JavaScript? [duplicate]!+(不是加字符串)在 JavaScript 中是什么意思? [复制] 【发布时间】:2022-01-17 02:20:51 【问题描述】:!+
(添加感叹号)在 JavaScript 中是什么意思?
为什么!+"000"
是真的?
为什么!+"0010"
是假的?
尝试:
!+"000" // true
!+"00010" // false
!+"0a0" // true
!+"0,0" // true
!+[0,0,0] // true
!+[0,1,0] // true
true+"000" // true000
我尝试过搜索:
In javascript, why is "0" equal to false, but when tested by 'if' it is not false by itself? What does "!--" do in JavaScript? What is the !! (not not) operator in JavaScript?这里我看到了代码:JS - Check if string contain only 0
此信息在 Internet 上很难找到。
【问题讨论】:
这是两个独立的一元运算符 参见 What does this symbol mean in JavaScript? 和 MDN 上关于 expressions and operators 和 statements 的文档。可以组合运算符。您不会询问所有可能的组合,对吧?true + "000"
不使用一元 +
,而是使用二元。 specification 详细解释了它的作用。
【参考方案1】:
+
是一元加号。它将后面的表达式转换为数字。
然后,!
否定后面的表达式:如果它为真,则结果为假。如果为假,则结果为真。
几个例子:
!+"000"
!0 // because '000', when converted to a number, is 0
true
!+"00010"
!10 // because "00010", when converted to a number, is 10
false // because 10 is truthy
!+[0,1,0]
!NaN // because arrays can't be converted to numbers directly (usually)
true
【讨论】:
以上是关于!+(不是加字符串)在 JavaScript 中是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
和 " " 以及没有引号在 Javascript 中是啥意思?
(R) forceNetwork 警告消息:“看起来源/目标不是零索引。这在 JavaScript 中是必需的,因此您的绘图可能无法呈现”