gpt4 book ai didi

javascript - Javascript 中的函数式编程返回值

转载 作者:行者123 更新时间:2023-11-28 00:51:04 25 4
gpt4 key购买 nike

我目前正在阅读 Michael Fogus 所著的《函数式编程》一书。我有两个问题无法通过我自己的研究来回答。

我以前没有见过这个约定:

function truthy(x) { return (x !== false) && existy(x) }

存在的位置:

function existy(x) { return x != null }

我还没有看到在返回东西时使用 && 。它的目的是什么?

本书后面的另一个例子是:

function plucker(field) {
return function(obj) {
return (obj && obj[field])
}
}

在该示例中,如果我将 obj && obj[field] 替换为 obj[field] ,它会返回相同的结果。像他那样写有什么意义呢?

最佳答案

您实际上是在返回 ((x !== false) && exity(x)),这会产生一个 bool 值。

也许这个例子会更清楚:

var number1 = 10;
var number2 = 20;

if(number1 === 10 && number2 === 20) {
return true;
} else {
return false;
}

本质上是相同的:

var number = 3;

return number1 === 10 && number2 === 20;

至于问题的第二部分,为什么当您从语句中删除 obj && 部分时结果相同:

这是因为 obj 存在并且 obj[field] 也存在。如果您尝试检查对象 (obj)内部是否存在某些内容,如果不存在,则会收到错误消息。因此,需要先检查对象是否存在,然后再检查对象内部的属性是否存在。

所以你想询问你的代码:

Does object exist AND IF SO does parameter in object exist?

这意味着:

obj && obj[field]

关于javascript - Javascript 中的函数式编程返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com