gpt4 book ai didi

javascript - javascript中的切换条件很奇怪

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:05 24 4
gpt4 key购买 nike

我发现下面这两个是等价的,但是奇怪的是,单个 = 不是关系运算符而是赋值运算符,为什么它在第二个中有效?

首先:

switch (true) 
{
case color == 'green':case color == 'red':case color == 'blue':case color == 'pink':
alert('colorful')
break;
case color == 'black':case color == 'white':
alert('classical')
break;
default:
alert('dull')
break;
}

第二个:

switch (color) 
{
case color = 'green':case color = 'red':case color = 'blue':case color = 'pink':
alert('colorful')
break;
case color = 'black':case color = 'white':
alert('classical')
break;
default:
alert('dull')
break;
}

最佳答案

在第一个 switch 语句中,您检查 boolean 值。因此有效结果将是 truefalse

对于第二个 switch 语句,我们正在搜索一种颜色。赋值的结果就是它自己的赋值。

color = 'green' 将返回 green 并且与编写 case 'green': 完全一样,除了它还会更改颜色的值。BUT 这是一个很大的问题,但是,您正在更改 color 的值,同时检查 color 是什么,这可能会导致很大的副作用。

您最好为 case 'green': 使用正确的正式样式,而不是其他变体。尤其是 assignment 变体。

关于javascript - javascript中的切换条件很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21286004/

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