gpt4 book ai didi

javascript - JS严格速记对比

转载 作者:行者123 更新时间:2023-11-30 00:08:16 26 4
gpt4 key购买 nike

在下面的例子中,我们可以优雅地评估foo为真值:

const foo = 'bar';
if (foo) { // clearer than (foo !== undefined)
// -> executes
}

但是,这实际上计算为 (foo != undefined),如以下示例所示:

const foo = 0;
if (foo) {
// -> doesn't execute
}

在这个例子中,我希望 foo 是真实的。

是否有任何简化的严格比较可以评估 === 而不是 ==?以下变得麻烦:

const exists = (foo !== undefined && bar !== undefined && lorem !== undefined);

最佳答案

虽然我不知道严格比较的简写形式,但您可以使用一个小辅助函数轻松检查 nullundefined。我相信您知道这一点,但查找此问题的其他人可能不知道。

代替

const exists = (foo !== undefined && bar !== undefined && lorem !== undefined);

你可以这样写:

const exists = [foo, bar, lorem].every(check);

带有函数和一些测试的代码片段:

var foo, bar, lorem, exists;

function check(arg) {
return arg != null;
}

foo = "bar";
bar = "lorem";
lorem = "ipsum";
exists = [foo, bar, lorem].every(check);
document.getElementById("output-one").innerHTML = exists;

foo = 0;
bar = 0;
lorem = "ipsum";
exists = [foo, bar, lorem].every(check);
document.getElementById("output-two").innerHTML = exists;

foo = 0;
bar = 0;
var soab;
exists = [foo, bar, soab].every(check);
document.getElementById("output-foo").innerHTML = exists;
<p id="output-one"></p>
<p id="output-two"></p>
<p id="output-foo"></p>

正如 Bergi 在评论中指出的那样,除了两项主要改进之外,您当然还可以检查 !== undefined 以使该函数更接近问题的行为。

关于javascript - JS严格速记对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599297/

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