Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在if/else if语句中,变量被锁定在第一个选项中。我怎样才能解决这个问题?_Javascript_Variables_If Statement - Fatal编程技术网

Javascript 在if/else if语句中,变量被锁定在第一个选项中。我怎样才能解决这个问题?

Javascript 在if/else if语句中,变量被锁定在第一个选项中。我怎样才能解决这个问题?,javascript,variables,if-statement,Javascript,Variables,If Statement,这是我的通用代码(JavaScript): 每当我在浏览器中测试此代码时,只有{dothis}部分中可能发生的操作才会发生。x被锁定为1,即使它是一个公平的6面骰子。你知道为什么会发生这种情况,以及我如何修复它吗?JavaScript中的=操作符用于赋值x=1将始终返回true,因为这是一个永远不会失败的赋值。要测试是否相等,请使用==()或==()。您的if(x=1)将1的值指定给x,而不是检查它是否相等。这导致它总是返回TRUE。使用一对==(或===)将解决此问题。每次将x设置为1。1是真

这是我的通用代码(JavaScript):


每当我在浏览器中测试此代码时,只有{dothis}部分中可能发生的操作才会发生。x被锁定为1,即使它是一个公平的6面骰子。你知道为什么会发生这种情况,以及我如何修复它吗?

JavaScript中的
=
操作符用于赋值
x=1
将始终返回
true
,因为这是一个永远不会失败的赋值。要测试是否相等,请使用
==
()或
==
()。

您的if(x=1)将1的值指定给x,而不是检查它是否相等。这导致它总是返回TRUE。使用一对==(或===)将解决此问题。

每次将x设置为1。1是真实的,因此它通过泄漏赋值将第一个条件传递给1。
=
==
是比较
=
是赋值,但这不会消除它变为变量的能力吗?这不只是将x锁定为1吗?谢谢@j08691,它起作用了。只是检查一下,您是在第一行使用
×
还是
*
let x = Math.floor(Math.random()×6)+1);

if (x=1){
   do this
} else if (x=2){
   do that
} else if.... and so on.