gpt4 book ai didi

javascript - 通过逻辑运算符 OR 分配默认值

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:42 24 4
gpt4 key购买 nike

我们知道javascript的逻辑运算符||如果第一个操作数为 true,则生成其第一个操作数的值。否则,它产生第二个操作数的值。

所以在这个例子中:

<script language="javascript">
function test (value){
this.value = value || "(value not given)";
}
</script>

如果传递给函数的参数value被视为false,如整数0或空字符串"" 然后 this.value 将被设置为 (value not given) 这不是 true 正确的(因为我们确实传递了一个值).

所以问题是哪种方法应该是设置 this.value 的最佳方式?

编辑:所有 4 个第一个答案都使用三元运算符“?”。我的问题是关于“||”运营商。

最佳答案

带有||的方案写起来最方便,但只能在假值(undefined, null)时使用, 0, "", false, NaN) 不是合法值。 (当您只想处理 nullundefined 时,您可以使用新的 nullish 合并运算符 (??) 描述 in this proposal 和包含在 ES2020 中。)

如果您想允许特定的错误值而不允许其他值,那么您必须编写更具体的代码来处理您的特定情况。例如,如果您想允许一个空字符串,但不允许 null 或 undefined 或其他虚假值,那么您必须编写更具体的代码,如下所示:

function test(value) {
if (value || value === "") {
this.value = value;
} else {
this.value = "(value not given)";
}
}

或者如果你只想排除undefined,你可以专门测试它:

function test(value) {
if (value === undefined) {
value = "(value not given)";
}
this.value = value;
}

关于javascript - 通过逻辑运算符 OR 分配默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8156855/

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