gpt4 book ai didi

javascript - 在JS中, (a===b===c) 和 ( (a===b)&&(a===c)&&(b===c) ) 相同吗?//抱歉我的无知

转载 作者:行者123 更新时间:2023-11-28 12:25:59 26 4
gpt4 key购买 nike

我的目标是“当只有a、b和c相等时执行代码”。我想出了两个代码:

代码#1:

if (a===b===c) {console.log('something')};

代码#2:

if ( (a===b)&&(a===c)&&(b===c) ) {console.log('something')};

我已经尝试了这两种方法,并意识到只有“code#2”能够满足我的目的(仅当3个变量相等时才执行(例如a=b=c),但对于“code#1”,只要有 2 个等效变量(例如 a=bb=c ..),它就会执行

我的问题是:“code#1 和 code#2 有什么区别?”

最佳答案

您实际上要问的问题是这两者是否相同:

if (a === b === c) {...}
if ((a === b) && (b === c) && (a === c)) {...}

很快,他们就不是了。第一个可以概括为:

if ((a === b) === c) {...}

如果 a 和 b 相等,则计算结果为

if (true === c) {...}

这与检查三者是否相等不同。
要检查三向相等性,您必须手动检查所有边:

if ((a === b) && (b === c)) {...}  

关于javascript - 在JS中, (a===b===c) 和 ( (a===b)&&(a===c)&&(b===c) ) 相同吗?//抱歉我的无知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28543611/

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