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人更快更有趣。
答案 0 :(得分:2)
else (
是无效的语法。您需要else if
(或仅else {
)。否则代码对我来说没问题,所以可能只是一个CA错误?
答案 1 :(得分: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)
,你会得到{{1}的异常没有定义。
答案 2 :(得分: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
答案 3 :(得分:0)
您的代码看起来不错,但
在比较之前你应该对你的年龄做parseInt,因为你要将字符串与int类型进行比较。
如果你的访客是18岁,你应该做点什么:P有类似的东西:
if( age.parseInt() >= 18)
或者你可以在比较age = age.parseInt()
答案 4 :(得分:0)
虽然您可能希望执行从String到Number的显式转换,但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");
}
}
});