gpt4 book ai didi

javascript - 可能会破坏我 Javascript 职业生涯的基本 boolean 逻辑

转载 作者:行者123 更新时间:2023-11-27 23:05:28 24 4
gpt4 key购买 nike

很多人可能会觉得我的心理障碍很奇怪,但我担心如果我现在不解决这个问题,它会给我带来巨大的问题。

来自 MDN:http://api.jquery.com/Types/#String

    var x = "";  // so x inits to false
if ( x ) {
console.log( "x defaulted to true" );
} else {
console.log( "x defaulted to false" );
}
// x defaulted to false

因此,x 作为空字符串会将 x 初始化为值 FALSE。简单。

代码返回“x 默认为 false”。即 if 条件解析为 false,因此返回第二条语句。

我需要一些类比来理解这一点。在我的脑海里我想:“如果(某些条件为真),即“是的,X 确实为假是正确的(真)”,则返回适当的回复。

由于 x 确实为 FALSE,所以这不应该返回 true 吗?为什么不呢?

作为测试,我将x 设置为 false 并检查 if 语句以查看 x 是否确实为 false。然而,在这种情况下,它返回 TRUE,即 TRUE,X 确实是 false

    var x = false;
if ( x === false ) {
console.log( "x defaulted to true" );
} else {
console.log( "x defaulted to false" );
}
// x defaulted to true

为什么第一个案例没有做同样的事情?在这两种情况下 x 的值都是 false。这一直让我绊倒。

最佳答案

在第一种情况下,你说的是

if (x) ...

这与“如果 x 为真”相同...

在你的例子中,x等于一个空字符串,这在javascript中是错误的。因此,您正在点击 else。显然,在第二个示例中,您设置 x = false,然后询问“x 是假吗?” - 答案是“是,x 为假”或true,这就是执行第一个条件的原因。

if/else 解析后执行的代码与条件的真假无关。您可以控制台记录“x 默认为香蕉”,以便所有 javascript(或任何语言)都关心。

编辑 - 为了更加清晰,如果您希望发布的第二个代码片段点击else,请将其更改为if (x) 就像你的第一个片段一样。由于 false 是 falsey - 它会按照您的预期运行。

tl;博士

var x = false;
x === false // this is true
x // this is false

关于javascript - 可能会破坏我 Javascript 职业生涯的基本 boolean 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36639289/

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