我一直在使用LiveScript很长一段时间,而且我注意到在隐式返回undefined
的情况下,会使用表达式void 8
。
当然,我理解使用void
,但我无法弄清楚为什么使用整数8
。
例如,以下LiveScript:
x = if truthy then \success!
将编译为:
var x;
x = truthy ? 'success!' : void 8;
答案 0 :(得分:5)
从LiveScript文档中可以看出,使用void
而不是undefined
的原因是:
在JavaScript中,undefined可以重新定义,因此谨慎使用 void运算符,它始终生成未定义的值。无效的 顶级(不用作表达式)编译为空(用作 占位符) - 它必须用作编译值。
至于8
,它是一个任意数字,可以设置为任何其他数字。根据下面评论中的讨论,这个特定任意数字的原因是因为LiveScript是coco的分支,whose wiki reports:
void 8 - 选择了8号因为它是中国的幸运数字。
无论开发人员如何选择价值,从广义上讲,它只是LiveScript void
编译的内容。只需要通过void
调用评估一些表达式。
答案 1 :(得分:3)
最有可能8
是开发人员最喜欢的号码(或者只是一个随机数),就像你在void
运算符之后放置的那样,你将获得纯粹的,而不是被覆盖的{{1 }}
简单测试:
undefined