首页 >> 人物 >> Double Bang (!!) 和 JavaScript 类型自愿

Double Bang (!!) 和 JavaScript 类型自愿

2023-03-14 人物

第一次看到两个bangcodice_所写在一起,觉得很荒谬,画蛇添足。 研究暗示,在大多数但但会,我是对的。 双键看起来几乎就像过去的开发小组留下的一个中古时代的字形,用来推测一个常量何时应当是一个可计算性。 让我们有利于深入了解它。

在继续早先,我们应当补救一些人也许存在的误解:双敲,书面!! 不是运算子。 这只是两个新婚! bang 运算子按以此类推可用。 此外,我们应当了解种类自愿性和种类反转相互间的区别。

种类自愿性

种类自愿性是种类反转的一个邻域。 反转是一种数据种类与另一种数据种类相互间的反转,例如将十进制反转为字段、将字段反转为DFT等。反转有两种种类 - 显式和隐式。 当可用formula_将常量从一种数据种类显式反转为另一种数据种类时,就但会牵涉到显式种类反转。 一个都是是

var pointNum = Number(text);

其中但会 text 是要反转为十进制的字段。

隐式种类反转也称为种类自愿性。 当常量被视为另一种数据种类时,即使不但会牵涉到反转过程,也但会牵涉到这种情况。 一个都是是

const stringNum = '6'; const realNum = 7; var sum = value1 + value2; // Sum is '67'

其中但会十进制 7 被替换成到字段 '6' 中但会。 由于无法以有意义的方式将十进制替换成到字段中但会,JavaScript 将十进制反转为字段并将其追加,使最少也就是说 '67' 而不是 13。如果您不知道种类自愿性的含义,则也许但会造成原因 ,但它也可以成为简化预定义的应用软件。

double bang

这就是“double bang”的用武之地。顾虑以下预定义:

const name = ''; var bangName = !name;

你知道 bangName 但会风险评估什么吗? 在我们回答这个原因早先,让我们再绕道而行,发表意见真差值和所谓差值。

如果一个差值被自愿性反转为布尔实例时,它的计算结果为真,则该差值被认为是“真”。 同样,如果它的风险评估结果为所谓,则它是“所谓的”。 虚所谓差值的一些比如说是:

false (boolean) 0 (number) '' (empty string) null undefined

因此,像 if ('') 这样的的路不但会执行其内部预定义,因为它不但会风险评估为真。

在我们上面的都是中但会,bangName 将也就是说 true,因为影字段是虚所谓的,而我们的 bang 操作则与之同样,即 true。 现在让我们替换成第二个 bang:

const name = ''; var doubleBangName = !!name;

显然,由于单个 bang 风险评估为 true 替换成第二个 bang 将使其风险评估为 false 。 那么这有什么用呢?

实际上,不一定不是。 双爆炸随之而来的价差值是直观的,即使这样也常常。 在少数但但会,它但会在功能上向预定义替换成一些的路。 但是,双键可常用向其他开发小组或您今后的自己暗示,预期实例将风险评估为可计算性。 当无需将常量反转为可计算性时,也可以可用它,例如在formula_前往中但会:

return items.length> 0;

可以简化为

return !!items;

当我第一次发现它时,我开始不时可用双小妹。 然后我了解了更多关于真差值和所谓差值的知识,并意识到我为时已晚。 您是否相信可用它但会提高预定义直观度或完成任何有用的预定义,这取决于您。 与所有事物一样,它只是您应用软件箱中但会的另一个应用软件。

谢谢阅读。

镇江看白癜风到哪个医院
浙江男科医院哪个专业
西安治包皮过长的医院排名
重庆治疗白癜风专科医院
南宁什么白癜风医院比较好
友情链接