Javascript If Else始终选择选项1

Javascript If Else始终选择选项1,javascript,Javascript,所以我的Javascript代码应该是随机选择的,但它总是选择第一个选项,即使我切换了这些选项,它也总是选择顶部的选项。我是否犯了错误,或者我如何才能让它工作 function test() { var values = ["1","2"], valueToUse = values[Math.floor(Math.random() * values.length)]; // do something with the selected value ale

所以我的Javascript代码应该是随机选择的,但它总是选择第一个选项,即使我切换了这些选项,它也总是选择顶部的选项。我是否犯了错误,或者我如何才能让它工作

function test() {
     var values = ["1","2"],
        valueToUse = values[Math.floor(Math.random() * values.length)];
    // do something with the selected value
    alert(valueToUse);
} 

if (values = 1) {
window.location = "tail.html"; }
else if (values = 2) { window.location = "head.html"; }
您需要使用==或代替=

这是一个赋值,不是比较。这永远是真的

此外,您从不调用test

此外,您应该使用not值测试值,因为这是您分配随机选择的地方

此外,valueToUse和values都在测试函数的本地范围内,在测试函数之外不可用。赋值将创建一个新的全局变量。

首先,如果值=1不是有效的比较方式。 =注释赋值,因此基本上将值设置为1。如果要比较js中的值,可以在值==1时这样做

在其他编程语言中,u通常使用==来代替,但是在js中,如果以这种方式比较,它将只检查值,而不是变量的类型,因此数字2将匹配字符串2 如果2==2{//结果为真}

如果使用===它将同时检查值和类型
如果2==2{//result is false}

要使代码运行,可以从数组中返回一个随机选择的值,将其存储在value中,并检查它的新方向。为了显示比较结果,我省略了window.location和console.log

比较是严格的,检查字符串

功能测试{ var值=[1,2], valueToUse=values[Math.floorMath.random*values.length]; 返回值使用; } var值=测试; 如果值=='1'{ console.log tail.html; }如果值=='2'{ console.log head.html; }
if (values == 1) {
  // and so on...
}
if (values = 1) {