1

CodeAcademy 说我没有定义变量年龄?

我哪里做错了?

$(document).ready(function(){
    confirm("I am ready to play!");
    var age = prompt("What's your age");

    if (age > 18) {
    console.log("play on player");
    }
    else {
    console.log("you are not allow to play bro");
    }
    }); 

*对于任何想知道我为什么不使用 CA Q&A 的人,是因为 Stack 的人更快、更有趣。

4

5 回答 5

2

else (不是有效的语法。你需要else if(或只是else {)。否则代码对我来说看起来不错,所以可能只是一个 CA 错误?

于 2012-12-08T20:28:58.747 回答
0

age尽管您可能希望执行从字符串到数字的显式转换,但声明看起来没问题。

confirm()除非对返回的值进行测试,否则也是没有意义的。

$(document).ready(function() {
    if(confirm("I am ready to play!")) {
        var age = Number(prompt("What's your age"));
        if (age >= 18) {
            console.log("play on player");
        }
        else {
            console.log("you are not allow to play bro");
        }
    }
});
于 2012-12-08T20:44:19.313 回答
0

也许这会更好,注意你错过了一个if声明

$(document).ready(function(){
    confirm("I am ready to play!");

    var age = prompt("What's your age");

    if (age > 18) {
     console.log("play on player");
    }else{
     if(age < 18) {      //but what about age == 18?? :)
      console.log("you are not allow to play");
     }
    }
}); 

编辑

回应您的编辑。如果上面的代码运行,并且您稍后尝试访问age,您将无法访问,因为age它的作用域是这个“闭包”(函数作用域)。如果您想稍后访问,您应该尝试以下操作:

var age;
$(document).ready(function(){
 confirm("I am ready to play!");

 age = prompt("What's your age");

 if (age > 18) {
  console.log("play on player");
 }else{
  console.log("you are not allow to play");
 }
}); 

所以现在稍后您将能够使用该age变量。但是,如果您没有采用这种方法,而是采用第一种方法,并console.log(age)在您的块之外尝试$(document).ready),您会得到一个age未定义的异常。

于 2012-12-08T20:34:25.737 回答
0
$(document).ready(function(){
        confirm("I am ready to play!");
        var age = prompt("What's your age");

        if (age > 18) {
        console.log("play on player");
        }
        else if(age < 18) {
        console.log("you are not allow to play dawg");
        }
        }); 

你犯了一个简单的错字,应该把else if(而不是else

于 2012-12-08T20:34:37.380 回答
0

您的代码看起来不错,但是

您应该在比较之前对您的年龄进行parseInt,因为 ATM 您正在将字符串与 int 类型进行比较。

如果您的访客是 18 岁,您应该做一些事情:P 有类似的东西:
if( age.parseInt() >= 18)

或者你可以在比较之前做age = age.parseInt()

于 2012-12-08T20:41:05.543 回答