我知道这是一个非常基本的问题,但0在下面的代码中引用了什么
var even = arr.filter(function(val) {
return 0 == val % 2;
});
答案 0 :(得分:1)
0指的是什么
此处0
指的是Number
0。
0 == val % 2
将评估您要返回的true
或false
。
答案 1 :(得分:1)
val
是%
模数(0
)的测试值2.当没有"余数"时,与偶数一样,它将返回1号}}。对于奇数,它的余数为1
,函数将false
返回filter()
。
答案 2 :(得分:1)
%
是模数运算符,它的工作方式如下
余数运算符(模数)返回以模为单位的第一个操作数 第二个操作数,即
的整数余数var1
modulovar2
。 模数函数 是var1
除以var2
换句话说,如果val
可以除以2
,则模数运算符返回0
,因为没有余数,这就是它检查零的原因< / p>
转动yoda条件,更有意义
val % 2 === 0; // can be divided by 2, so it's even, returns boolean
例如,如果val
是4
,16
,200
等,那就是真的,因为4
可以平均除以{{1} }}。
如果2
为val
,3
,9
等,那么它将是错误的,因为201
无法按3
平均分配。< / p>
答案 3 :(得分:0)
0只是一个与右手侧表达式相比较的数字 val%2
语句0 == val % 2;
如果val%2为0(val
的值为偶数)则返回true,或者返回false,则val%2为1(val
的值为奇数)< / p>
仅供参考:当val
除以任意数字时,模数运算符会返回余数(数字)