Cok*_*her 1 javascript return-type return-value nan
我读到有时候&&运算符用于"短路"JavaScript,认为返回值0为0而不是NaN,因为0是JavaScript中的错误数字.我一直在四处寻找这一切意味着什么.有人可以向外行解释吗?
例如:
function sign(number) {
return number && number / Math.abs(number); }
Run Code Online (Sandbox Code Playgroud)
如果number为0,则返回0.
这听起来像我之前看到的答案,但现在找不到(链接会有所帮助),但你在这里得到了错误的结局.
鉴于以下情况:
foo = 0 ;
bar = foo && 2 / foo;
Run Code Online (Sandbox Code Playgroud)
在第二行,将评估foo.它是0错误的价值.&&(foo)的左侧将被返回并分配给bar.
现在,如果我们有foo = 1:
foo = 1 ;
bar = foo && 2 / foo;
Run Code Online (Sandbox Code Playgroud)
再次,foo将进行评估.这是一个真正的价值,因此&&将评估并返回右侧.2 / foo是2这样2被分配到bar.
"短路"只是意味着只要部分&&失败,它就会返回失败的部分而不对右边的任何东西进行评估.