JavaScript中称为“ wisp”的Closure(Script)实现具有以下代码段:
(get [1 2 3] 1) ; => ([1, 2, 3] || 0)[0]
这意味着该wisp代码可以在JavaScript中进行编译:
([1, 2, 3] || 0)[0]
但是为什么有|| 0
一部分呢?
我的猜测是,您可以给它发送一个变量,而不是编写一个文字数组:
(get x 1) ;
因此|| 0
,如果x
是null
或,则使用undefined
。
在JavaScript中,||
不返回布尔值,如果它是“ truthy”,则返回第一个值,如果第一个是“ falsy”,则返回第二个值。
0[0]
undefined
就像返回一样[][0]
。0
比少一个字符[]
,所以这可能就是为什么他们|| 0
代替的原因|| []
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句