JavaScript中的[].$是什么意思?

12

JavaScript 中有一个函数可以计算一些数字的总和,但我不明白这个部分 ([].$) 是什么意思:

JavaScript 中有一个函数可以计算一些数字的总和,但我不明白这个部分 ([].$) 是什么意思:

const sum = d => d != [].$ ? `${d = [...`${d}`].join` + `} = ${eval(d)}` : ``

[].$

[].$ - 它是什么?

2个回答

12

[].$ - 是什么?

它是一个空数组字面量 ([]) 接着一个属性访问表达式 (.$) 查找名为 $ 的属性。

由于数组通常没有这样的属性名,因此可以推测它已经被之前的代码设置了(或者在检查条件下可能会设置)。如果没有代码设置它,则相当于简写为 undefined(因为当 $ 不是数组的属性时,[].$ 就是 undefined)。


1
我认为这只是为了缩短代码中值“undefined”的长度,因为正如你所说,数组通常没有该属性。 - thammada.ts

5

对于这段代码来说,它没有什么重要的意义。它只是用最少的字符来表示值undefined。同样可以使用[]._或者undefined

至于如何解释它,@T.J.Crowder在回答中总结得很好。


1
谢谢,你的回答正是我所要求的。我会标记@T.J.Crowder的答案,因为他总结了这些文字。我已经给你的答案打了一个加号。感谢你的支持! - mvn.2047
3
在这个意义上,它确实很重要:)我实际上是指它可以很容易地被其他值替换为undefined,不确定如何用更好的措辞表达。同时声明一个 u 常量会使代码变得更长。 - thammada.ts
1
@esff - 哦,绝对不会。把缩小的工作留给缩小器。 - T.J. Crowder
@esff FYI,有些情况下代码的可读性或性能不如代码长度重要,详见Code Golf - thammada.ts
@T.J.Crowder 没错! :) - mvn.2047
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接