Javascript 这是怎么回事;如果;没有操作员工作?
我对Javascript比较陌生,我正在阅读第5章的雄辩Javascript。我遇到了一些我不太懂的代码。我知道它是如何工作的(一般的方法和步骤),但我不明白它为什么工作 代码如下:Javascript 这是怎么回事;如果;没有操作员工作?,javascript,arrays,function,comparison,operator-keyword,Javascript,Arrays,Function,Comparison,Operator Keyword,我对Javascript比较陌生,我正在阅读第5章的雄辩Javascript。我遇到了一些我不太懂的代码。我知道它是如何工作的(一般的方法和步骤),但我不明白它为什么工作 代码如下: function filter(array, test) { var passed = []; for (var i = 0; i < array.length; i++) { if (test(array[i])) passed.push(array[i]); } ret
function filter(array, test) {
var passed = [];
for (var i = 0; i < array.length; i++) {
if (test(array[i]))
passed.push(array[i]);
}
return passed;
}
没有| |&&或其他“比较运算符”。它如何将值与仅使用括号进行比较
如何将测试与没有运算符的数组[i]值进行比较
链接到文件:
转到“筛选数组”练习
谢谢 我不太确定,但我认为这是一个自定义函数。很可能存在一些比较,函数的结果为真/假。如果您给我们完整的代码,我们可以更好地向您解释。此代码接受一个
test
参数,即所谓的“谓词函数”,即给定元素的函数将返回true或false
例如,它将用于
var big_numbers = filter(numbers, function(x){ return x > 100; });
i、 e.预期参数测试实际上是代码
在Javascript中,传递代码是非常常见和惯用的。在其他不支持“闭包”和“嵌套函数”概念的语言中,这是一种更令人恼火的事情,它迫使所有代码都处于顶层,有一个名称,并且没有上下文(例如C语言)。将计算
if
语句括号内的任何内容。如果结果为falsy(false
,0
,”
,NaN
,null
,未定义
),则失败,如果结果为真(其他所有内容),则通过。因此,如果if语句包含函数调用if(test(something)){}
,那么if语句只会说,如果函数调用的结果是truthy,那么pass
另外,
&&
和|
不是比较运算符,它们是布尔运算符。它们只是将两个语句的结果连接起来,比如true | | false
,其计算结果为true
“test”这里是一个函数,而不是一个值。在Javascript中,每个函数都是一个对象,可以作为参数传递。在这种情况下,test是一个函数,它接受一个参数并根据参数值返回true或false
因此,在for循环中,对每个数组元素调用test函数,如果结果为true,它将存储在另一个数组中。最终,传递的元素将返回给函数调用方。test函数调用产生一个值:truth-y或false-y。它与
var x=somevalue()没有区别;如果(x){..}
。括号是if
构造的一部分,但不“比较”任何内容。在类似问题或类似文章的比较中,可以找到所有相关信息,并返回布尔结果。if语句不需要比较,只需要一个布尔变量就足够了。@AycanYaş305;它根本不需要是“布尔”(或变量)。@user2864740是否将0
和1
值转换为布尔值?
var big_numbers = filter(numbers, function(x){ return x > 100; });