我刚刚开始学习JS,我想问一个我无法完成的任务。
var balance = 325.00;
var checkBalance = true;
var isActive = false;
//The first question
if (checkBalance = true) {
// the second question
if(isActive = false) {
console.log("Your account is no longer active.");
} else if(isActive = true) {
if(balance > 0) {
console.log("Your balance is " + balance.tofix(2) +"$.");
} else if(balance = 0) {
console.log("Your Accunt is empty");
} else {
console.log("Your balance is negetive, please contant bank");
}
}
else {
console.log("Thank you. Have a nice day");
目标是写一台ATM,为了做到这一点,我想在同一时间写出多个条件(正如你在代码中看到的那样)。
答案 0 :(得分:0)
在javascript中你应该使用===表示条件相等 你的代码:
if (checkBalance = true) {
正确的是:
if (checkBalance === true) {
同样适用于
if(isActive = false) {
正确的是:
if(isActive === false) {
答案 1 :(得分:0)
=是赋值,==用于检查,更改=到==,===用于检查相等性和类型。
if (checkBalance = true) {
答案 2 :(得分:0)
你走在正确的轨道上,确实可以在另一个内部写一个if statement
。但是,你错过了一个括号,你检查平等的方式也应该不同。我编辑了你的代码,所以我可以解释一下:
var balance = 325.00;
var checkBalance = true;
var isActive = false;
//The first question
if (checkBalance) {
// the second question
if(isActive = false) {
console.log("Your account is no longer active.");
} else if(isActive) {
if(balance > 0) {
console.log("Your balance is " + balance.tofix(2) +"$.");
} else if(balance === 0) {
console.log("Your Accunt is empty");
} else {
console.log("Your balance is negetive, please contant bank");
}
}
else {
console.log("Thank you. Have a nice day");
}
我主要更改了代码中的两件事。第一个是改变
if (checkBalance = true)
进入这个:
if (checkBalance)
编辑1:语句缩短
您可以省略= true
部分,因为checkBalance
已经是布尔值。这意味着它已经是true
或false
,这是if statement
接受的值。这让我进入了第二次编辑,这是最重要的编辑。
编辑2:检查是否相等
在您的代码中,您在= true
内使用if statements
。遗憾的是,仅使用一个=
符号不会检查是否相等,而是指定值。在分配值=
时,您只能使用一个var a = 1;
。相反,您应该使用=
之类的三个===
唱歌。这实际上检查了两件事。首先,它检查值的类型是否相同。然后,它检查值是否相等。您还可以使用=
之类的两个==
sings,这将更松散地检查相等性,因为它不会检查类型是否相同。如其他答案所述,此处===
更为可取。
我希望这能回答你的问题。如果没有,请在下面评论。
答案 3 :(得分:0)
第一个:
= : is assign
=== :is compare
又一件事是:
balance.tofix(2)
应为:
balance.toFixed(2)
而我只是这样编辑您的代码:
var balance = 325.00;
var checkBalance = true;
var isActive = false;
//The first question
if(!checkBalance) console.log("Thank you. Have a nice day");
else {
if(!isActive) console.log("Your account is no longer active.");
else{
if(balance > 0) {
console.log("Your balance is " + balance.toFixed(2) +"$.");
} else if(balance = 0) {
console.log("Your Accunt is empty");
} else {
console.log("Your balance is negetive, please contant bank");
}
}
}
答案 4 :(得分:-1)
您在语法错误方面得到了很好的答案。关于“有更好的方法”,不需要使用true
对false
和===
进行平等检查,因为{{1}中已经隐含了真/假条件。您可以将其用作变量。此外,由于它是一个只能为true或false的布尔值,因此使用if
然后使用if
完全没问题。无需执行else
和if
。
使用辅助函数来处理复杂的情况会使代码更具可读性。
else if