gpt4 book ai didi

Javascript:用 0 和 1 数字进行真假比较

转载 作者:行者123 更新时间:2023-11-30 20:29:24 25 4
gpt4 key购买 nike

当处理 ajax 请求时,如果响应属性为 1(类型:数字)表示真或 0(类型:数字)表示假,检查这是否属实的最佳方法是什么。所有这些示例都有效,只是想知道是否有首选的使用以及首选的原因。

if (response.hasOwnProperty('test')) {

// 1
if (response.test === 1) {
alert('is true');
}

// 2
if (response.test) {
alert('is true');
}

// 3
if (response.test == true) {
alert('is true');
}

// 4
if (Boolean(response.test) === true) {
alert('is true');
}

// 5
if (response.test == 1) {
alert('is true');
}
}

最佳答案

如前所述,它主要基于意见。

但是,也有一些优缺点取决于您使用的方法。

首先,上下文很重要:如果它是您为自己编写的代码,或者它是与正在协作的其他开发人员的项目;如果您还在后端编写 - 因此您可以控制 - 等等。

一般来说,如果它是我可以控制的并且它不是生产代码,我可能会选择第二种形式:足够快,足够清楚 - 它是真实的或虚假的 - 我确信从返回的值后端是 0 和 1 是有原因的。

在所有其他情况下,我会选择严格相等,所以第一种形式:它更明确。阅读第二种形式,我唯一知道的是值可以是真值或假值,我不知道实际值是多少。如果 API 有任何变化——因为,例如,我无法直接控制它,或者可能是其他人在项目中更改它而忘记了这段代码——代码将会失败。例如:

if (response.test === 1) {
// do something
} else if (response.test === 0) {
// do something else or do nothing
} else {
throw new Error("Unexpected value from response.test")
}

即使您没有 else 也足够安全,只要 API 可以添加一个新值。例如,假设现在 API 可以返回 0、1 或 3。如果您检查真值,则 1 和 3 将相等。但是如果你有:

if (response.test === 1) {
// do something
} else if (response.test === 0) {
// do something else or do nothing
}

你很好;即使扩展了 API,您的代码仍将按预期工作。

关于Javascript:用 0 和 1 数字进行真假比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50525092/

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