为什么LiveScript对未定义的值使用'void 8'?

Jim*_*ien 10 javascript void livescript

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

当然,我理解使用void,但我无法弄清楚为什么特别使用整数8.

例如,以下LiveScript:

x = if truthy then \success!
Run Code Online (Sandbox Code Playgroud)

将编译为:

var x;
x = truthy ? 'success!' : void 8;
Run Code Online (Sandbox Code Playgroud)

Sam*_*ley 5

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

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

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

void 8 - 选择了8号因为它是中国的幸运号码.

无论开发人员如何选择这个价值,从广义上讲,这正是LiveScript void编写的内容.只需要通过void调用评估一些表达式.

  • 只想添加一个关于原因的说明:这是一个中国的幸运数字 (4认同)