Javascript if 语句不执行第二个参数

发布于 2024-11-25 20:06:49 字数 545 浏览 1 评论 0原文

我有一个 var,它要么是 1,要么是 0,如果它是 1,页面应该转到 cnn.com,如果它是 0,它应该转到 google.com。问题是,当它为 1 或 0 时,它总是会转到 google.com。请访问 http://jsbin.com/ucovef/7 查看正在运行的版本 提前致谢

function random(){
var randomnumber=Math.floor(Math.random()*2)
document.getElementById('randomnumber').innerHTML=(randomnumber);
check_random()
}
function check_random(){
if (randomnumber = 0){
this.location.href ="http://www.cnn.com";
}
if (randomnumber = 1){
this.location.href="http://www.google.com";
}
} 

I have a var that is either 1 or 0, if it's 1 the page should go to cnn.com if it's 0 it should go to google.com. Problem is, when it's 1 or 0 it always goes to google.com. Check out the running version at http://jsbin.com/ucovef/7 Thanks in advance

function random(){
var randomnumber=Math.floor(Math.random()*2)
document.getElementById('randomnumber').innerHTML=(randomnumber);
check_random()
}
function check_random(){
if (randomnumber = 0){
this.location.href ="http://www.cnn.com";
}
if (randomnumber = 1){
this.location.href="http://www.google.com";
}
} 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

舂唻埖巳落 2024-12-02 20:06:49

您需要:

if (randomnumber == 0)

并且:

if (randomnumber == 1)

表达式 randomnumber = 0randomnumber = 1赋值表达式,用于分配数字 0 和 < code>1 到变量,尽管它们位于 if 条件语句内。

因此,它始终会转到 google.com,因为所有不等于 0 的内容都是 JavaScript 中的 true 表达式。

You need:

if (randomnumber == 0)

And:

if (randomnumber == 1)

Expressions randomnumber = 0 and randomnumber = 1 are assignment expressions that assign numbers 0 and 1 to the variables, despite them being inside an if conditional statement.

So, it always goes to google.com because everything not equal to 0 is a true expression in JavaScript.

屋顶上的小猫咪 2024-12-02 20:06:49

您必须使用 == 进行检查。 = 设置值而不是评估它。我还建议将随机数传递给函数。

function random(){
    var randomnumber=Math.floor(Math.random()*2)
    document.getElementById('random').innerHTML=(randomnumber);
    check_random(randomnumber)
}

function check_random(randomnumber){
    if (randomnumber == 0){
        this.location.href ="http://www.cnn.com";
    }
    else if(randomnumber == 1){
        this.location.href="http://www.google.com";
    } 
}  

You have to use == to make a check. = sets the value instead of evaluating it. I would also suggest passing the random number to the function.

function random(){
    var randomnumber=Math.floor(Math.random()*2)
    document.getElementById('random').innerHTML=(randomnumber);
    check_random(randomnumber)
}

function check_random(randomnumber){
    if (randomnumber == 0){
        this.location.href ="http://www.cnn.com";
    }
    else if(randomnumber == 1){
        this.location.href="http://www.google.com";
    } 
}  
心病无药医 2024-12-02 20:06:49

你必须使用 == 而不是 = !!!!!!!!!!!!!!!!!!

You must use == not = !!!!!!!!!!!!!!!!

情泪▽动烟 2024-12-02 20:06:49

Ben,您正在 check_random 中使用 random 中的局部变量。这行不通。试试这个

function random(){
var randomnumber=Math.floor(Math.random()*2)
document.getElementById('randomnumber').innerHTML=(randomnumber);
check_random(randomnumber)
}
function check_random(n){
if (n == 0){
this.location.href ="http://www.cnn.com";
}
if (n == 1){
this.location.href="http://www.google.com";
}
} 

Ben, you are using local variable from random in check_random. This won't work. Try this

function random(){
var randomnumber=Math.floor(Math.random()*2)
document.getElementById('randomnumber').innerHTML=(randomnumber);
check_random(randomnumber)
}
function check_random(n){
if (n == 0){
this.location.href ="http://www.cnn.com";
}
if (n == 1){
this.location.href="http://www.google.com";
}
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文