零代码在下面的代码中引用了什么

时间:2015-05-14 10:44:04

标签: javascript arrays filter

我知道这是一个非常基本的问题,但0在下面的代码中引用了什么

var even = arr.filter(function(val) {
return 0 == val % 2;
});

4 个答案:

答案 0 :(得分:1)

  

0指的是什么

此处0指的是Number 0。

0 == val % 2

将评估您要返回的truefalse

答案 1 :(得分:1)

val%模数(0)的测试值2.当没有"余数"时,与偶数一样,它将返回1号}}。对于奇数,它的余数为1,函数将false返回filter()

答案 2 :(得分:1)

%是模数运算符,它的工作方式如下

  

余数运算符(模数)返回以模为单位的第一个操作数   第二个操作数,即var1 modulo var2模数函数   是var1除以var2

的整数余数

MDN

换句话说,如果val可以除以2,则模数运算符返回0,因为没有余数,这就是它检查零的原因< / p>

转动yoda条件,更有意义

val % 2 === 0; // can be divided by 2, so it's even, returns boolean

例如,如果val416200等,那就是真的,因为4可以平均除以{{1} }}。
如果2val39等,那么它将是错误的,因为201无法按3平均分配。< / p>

答案 3 :(得分:0)

0只是一个与右手侧表达式相比较的数字 val%2

语句0 == val % 2;如果val%2为0(val的值为偶数)则返回true,或者返回false,则val%2为1(val的值为奇数)< / p>

仅供参考:val除以任意数字时,模数运算符会返回余数(数字)