我想弄清楚为什么这个javascript函数在AA<-c(2,3,1,4,9)
BB<-c(5,13,9,1,2)
A1<-c(5)
B1<-c(18)
data1<-data.frame(AA,BB)
data2<-data.frame(A1,B1)
library(dplyr)
subset(data1, ((sum(AA) ==data2$A1 ) && (sum(BB) ==data2$B1 ) ) )
值为0
时会返回this.position.startOffset
,但在值为0
以外的数字时却不会。
0
答案 0 :(得分:1)
&&
链将停止在第一个非真实(假)值的评估并返回它。由于0
是假的,因此在遇到它时会返回。如果没有遇到假值,则返回最后一个值:
var a = 55 && [] && 0 && false && true; // yeild 0 as it is the first falsy value to encounter
console.log("a:", a);
var b = 30 && true && [] && "haha"; // yeild "haha" as it is the last value (no falsy value encountered)
console.log("b:", b);
虚假值是:
null
undefined
''
或""
0
false
NaN
答案 1 :(得分:0)
这是因为javascript如何处理布尔表达式中的数字。 如果a和(&amp;&amp;)语句中的第一个参数返回0,则不会评估正确的参数,并返回0。