Javascript 什么是;count=(count&;count.length | 0)&引用;做
下面是一个简单的片段:Javascript 什么是;count=(count&;count.length | 0)&引用;做,javascript,Javascript,下面是一个简单的片段: pass="Hello"; count=pass.match(/[A-Z]/g); count=(count && count.length || 0); alert(count); //1 我只是不知道第三行是如何工作的,count=(count&&count.length | 0)。背后的逻辑是什么?谢谢 基本相当于 count = (count)? count.length : 0; 或者更明确地说 if (count) count = c
pass="Hello";
count=pass.match(/[A-Z]/g);
count=(count && count.length || 0);
alert(count); //1
我只是不知道第三行是如何工作的,
count=(count&&count.length | 0)代码>。背后的逻辑是什么?谢谢 基本相当于
count = (count)? count.length : 0;
或者更明确地说
if (count)
count = count.length;
else
count = 0;
它的缩写是:
if (count) {
count = count.length;
} else {
count = 0;
}
如果你想用英语写,它的意思是
如果count
为真,则获取count.length
,如果count.length
为假,则获取0
。如果count
为falsy,则获取0
。将计数设置为我们得到的值
你可以这样认为自己是真实的(而法尔西恰恰相反)
所以基本上,a=(a&&b|c)
是的缩写
if (a)
a=b
else
a=c
我同意了,因为我已经用a测试了,其中a在{-1,0,null,1}。一开始让我感到困惑的是,我认为逻辑运算总是会返回真/假或1/0值。但现在我学到了一些新东西。谢谢大家 条件if true(1)else false(0)如果有一个count变量,并且它有长度,则使用它,否则使用zero或count=(count | |[])。length
)@罗伯特克莱普这不是一场混淆比赛Dcount=(count&&count.length);意思是?@SHIN如果(count){count=count.length}
你确定吗?如果(count){count=count.length}或如果(count){count=count.length;}否则{count=0;},则为该值itslef@SHIN实际上,if(count){count=count.length}else{count=count}
(String.match()
返回匹配数组,或者null
在没有任何匹配的情况下)得到了它。但是count=(count&&count.length | 0);和count=(count&&count.length);这可能是有史以来最有用的函数;p@Drax如果读者以前没有遇到过truthy和falsy这两个术语,那么,isTruthy
的功能就是传达这个概念,而不是你期望在实际代码中看到的东西。明白这一点,只是开玩笑:)
if (a)
a=b
else
a=c