我看了这段代码,但是不太理解它的作用...
test.update = function(i)
{
return void 0 === i && (i = 3), 0 === i ? (..A..) : (..B..)
}
(..A..)和(..B..)只是我没有发布的其他代码。
假设i
的值为0,那么函数将返回什么?
"void 0 === i && (i = 3)"是什么意思?特别是(i = 3)
。这是否意味着如果if(void 0 === i)
为真,i
可以得到3,i
将变为3? 那逗号又是怎么回事呢? 我查了一下这个问题,但我还是不明白。
对不起,问题比较多,但我希望得到完整的答案,以便完全理解发生了什么。
谢谢
i
值,它只是执行(..B..)
语句块。 - pttskyvoid 0 === i
看起来是在检查i
是否为undefined
。当i
不是 undefined 时,i = 3
将i
设置为数字 3。 - evolutionxbox0 === i
检查i
是否为0
,然后执行(..A..)
或(..B..)
。此返回值使用 逗号操作符 和 三元运算符。 - evolutionxbox