我不知道如何解决
我试图交换它们,但未成功
let age = prompt("How old are you?")
function chk(age) {
age = (age > 18) ? alert("Access allowed") : alert("Access denied");
}
chk()
if (age < 18) {
let c = confirm("Are your parent allowed?");
if (c) {
alert("ok")
} else {
alert("than bye")
}
} else {
alert("Bye")
}
年龄大于18岁时,必须授予访问权限。而当较小时-相反
答案 0 :(得分:0)
您在调用chk()
函数时未传递参数age,这意味着函数内部的年龄为undefined
,现在undefined > 18
将始终为false,因此{ {1}}
您可以使用Access Denied
来防止上述问题
chk(age)
或者不要使用变量let age = prompt("How old are you?")
function chk(age) {
(age > 18) ? alert("Access allowed") : alert("Access denied"); // you don't have to reassign since alert does not return any value
}
chk(age);
if (age < 18) {
//.. remaining code
}
作为age
函数的参数,该函数掩盖了全球年龄
chk
答案 1 :(得分:-1)
这不是您问题的直接答案,而是在不涉及任何变量的情况下编写代码的另一种方法。我还“简化了”您的res
-子句结构,因为有两个“无”分支有效地导致了相同的结果。在我的if
子句中,当第一个条件(年龄> 18)为时,“或”运算符if
将导致||
函数仅被调用为 不遇见。
confirm()