gpt4 book ai didi

javascript - 这个 JavaScript 中的 bool 返回值是如何工作的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:34 25 4
gpt4 key购买 nike

我是编程新手,一直在努力自学。我在网上遇到了以下问题并试图解决它,但陷入了死胡同:

"Write a function that accepts three arguments and returns true if only one of those arguments is truthy, and false if not. Do not use && or || operators or if statements."

过去两天这让我很困惑,所以我继续寻找解决方案,但我很难弄清楚:

function onlyOne(x, y, z) {
return (!!x + !!y + !!z === 1);
}

我理解语法,但不理解其中的逻辑或为什么会这样。有人能帮我吗?我想了解代码为何有效,而不仅仅是记住语法。

最佳答案

!! 将值转换为实际的 bool 值。当您对 bool 值执行加法时,JavaScript 将它们强制转换为数字,false0true1

基本上,(!!x + !!y + !!z === 1) 强制转换 xyztruefalse,然后将它们加在一起。如果其中只有 1 个为真,则值为 1,并且 === 1 为真,否则为假。

这里是一个例子,展示了 bool 加法是如何工作的:

console.log(false + false); // 0
console.log(false + true); // 1
console.log(true + true); // 2

关于javascript - 这个 JavaScript 中的 bool 返回值是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46458989/

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