在代码学院学习Javascript。这是我给出的测试,
“在eat函数内部,创建一个if语句,只有当饿和foodHere都为真时才返回true,否则返回false。”
我的代码正在执行,但它有一个警告。可能是什么问题?
var hungry = true;
var foodHere = true;
var eat = function() {
if(hungry && foodHere){
console.log("I am hungry");
}else if(hungry && foodHere = false){
console.log("Choose one");
}
};
eat();
答案 0 :(得分:3)
var hungry = true;
var foodHere = true;
var eat = function() {
if(hungry && foodHere){
console.log("I am hungry");
}else {
console.log("Choose one");
}
};
eat();
问题是,您尝试在条件foodHere = false
中分配值。如果您想比较所需的内容==
,如果您想确保类型相同,请使用===
。
但你根本不需要这个条件!
作业要求你返回一个布尔值(true
或false
)而不是打印一些东西,所以我想你的代码应该是这样的:
var hungry = true;
var foodHere = true;
var eat = function() {
return (hungry && foodHere)
};
eat();
答案 1 :(得分:2)
Single =用于赋值,==用于比较
var hungry = true;
var foodHere = true;
var eat = function() {
if(hungry && foodHere){
console.log("I am hungry");
}else if(hungry && foodHere == false){
console.log("Choose one");
}
};
eat();
无论如何,你不需要进行第二次比较,因为如果第一次比较是假的,那么它总会通过其他
答案 2 :(得分:1)
我只想提供有关emilioicai答案的更多信息,JavaScript中有两种“平等比较”
答案 3 :(得分:0)
=用于赋值,==用于值比较,===用于值和数据类型比较。所以你可以在使用==时与false进行比较。但这不是最好的做法。我们总是使用'!'将true转换为false时的否定运算符
var hungry = true;
var foodHere = true;
var eat = function() {
if(hungry && foodHere){
console.log("I am hungry");
}else if(!hungry || !foodHere){
console.log("Choose one");
}
};
eat()
我正在使用||运营商假设任何人都需要假。你可以去&&如果两者都是假的