给出以下代码段

function countZeroes(array) {
  function counter(total, element) {
    return total + (element === 0 ? 1 : 0);
  }
  return reduce(counter, 0, array);
}
  • ===的作用是什么?
  • reduce是内置函数吗?它有什么作用?
  • 请解释该程序的步骤。
  • 最佳答案

    它是严格的相等运算符。
    它比较两个值,并根据 Strict Equality Comparison Algorithm 来检查它们是否相同。
    这与==相反,如果它们是不同类型,它将尝试强制比较一个或两个值。那个使用了 Absract Equality Comparison Algorithm
    Abstract算法的规则可能很棘手。除非您特别需要===,否则最好使用==
    来自MDC docs


    关于代码,这部分内容:

    (element === 0 ? 1 : 0)
    
    ...基本上说如果element的值与0完全相等,则使用1,否则使用0
    因此,请看整行:
    return total + (element === 0 ? 1 : 0);
    
    ...如果total + 1等于element,则函数的返回值为0,否则返回值为total + 0
    您可以使用if-else语句重写代码:
    if( element === 0 ) {
        return total + 1;
    } else {
        return total + 0;
    }
    

    关于Javascript ===(等于三倍),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5112934/

    10-13 06:21