gpt4 book ai didi

javascript - boolean 表达式的 = 与 === 运算符

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

这又是一个新手问题,我只是想弄清楚 javascript 如何解释 boolean 表达式。

好吧,假设我有以下代码:

var boolean = true;
while(boolean){
boolean === false;
};

由于使用相同的 === 运算符,这会进入无限循环。这是因为 javascript 在使用简写表达式 while(boolean) 时将 boolean 表达式“true”存储为数字“1”。那么 while(boolean) 实际上是解释为 while(boolean === 1) 而不是 while(boolean === true) 吗?

最佳答案

Is this because javascript stores the boolean expression "true" as digit "1" while using the shorthand expression while(boolean).

没有。

So is while(boolean) actually interpreted as while(boolean === 1) rather than while(boolean === true)?

没有。

它会永远循环,因为你没有做任何事情来改变 boolean 的值。循环内的变量。线路

boolean === false;

...没有效果;您正在进行比较,并且没有将其结果存储在任何地方。

您似乎有====使困惑。他们做完全不同的事情。以下是概要:

  • =赋值运算符。这是你用来给事物赋值的东西。 boolean = true; 分配true到变量boolean .

  • ===严格相等运算符。它用于查看两个事物是否严格相等(“严格”=“没有类型强制”)。所以a === b评估true如果ab包含相同类型且等效的值。

  • ==松散相等运算符。它用于查看两个事物是否松散相等(“松散”=“带有类型强制”)。所以a == b将评估true如果a === b如果a则为真b具有不同的类型,但类型强制可以将其中一个转换为另一个的类型。 (此规则很复杂,但例如 "" == 0 评估 true 因为 "" 强制到 0 。)

关于javascript - boolean 表达式的 = 与 === 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28408731/

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