11

我使用 LiveScript 已经有一段时间了,我注意到在undefined隐式返回的情况下,会使用表达式void 8

自然,我了解 的用法void,但我无法弄清楚为什么要专门使用整数8

例如,以下 LiveScript:

x = if truthy then \success!

将编译为:

var x;
x = truthy ? 'success!' : void 8;
4

2 回答 2

6

void从 LiveScript 的文档中,这是他们使用而不是的理由undefined

在 JavaScript 中,undefined 可以重新定义,因此始终谨慎使用产生 undefined 值的 void 运算符。顶层的 void (不用作表达式)编译为空(用作占位符) - 它必须用作编译的值。

至于8,它是一个任意数字,并且可以设置为任何其他数字。根据下面评论中的讨论,这个特定的任意数字的原因是因为 LiveScript 是 coco 的一个分支,其 wiki 报告

void 8 - 选择数字 8 是因为它是一个中国幸运数字。

无论开发人员如何选择该值,从广义上讲,这就是 LiveScriptvoid编译成的内容。调用只需要评估一些表达式void

于 2014-05-30T17:44:30.897 回答
3

最有可能8是开发人员最喜欢的数字(或只是一个随机数),因为无论您在void运算符后面放什么,您都会收到纯的,而不是覆盖undefined的。

简单测试:

void 0    === void 8    =>    true
void 'a'  === void 8    =>    true
void true === void 8    =>    true
于 2014-05-30T17:41:31.133 回答