字符串等于字符串控制流
String Equal to String Control Flow
当对 TDEE 计算控制流比较运算符使用 =
时,流停止在 if (activityLevel = 'sedentary')
。当我使用 ==
时,它按预期工作。我已经坚持了 2 个小时,我已经阅读了大约 3 个文档,但我无法弄明白。
我知道 ==
用于相同的值和含义,===
用于相同的值和类型,但我认为这与它没有任何关系。有那么一刻我想 =
可能用于类型,在这种情况下如果 activityLevel
等于一个字符串,但我很确定那不是它,因为我没有在文档中遇到它=
.
注意:TDEE 控制流中的注释数字是应该的结果,而不是结果。
// REE Calculation
// Males - 10 x weight (kg) + 6.25 x height (cm) – 5 x age (y) + 5 = REE
// Females - 10 x weight (kg) + 6.25 x height (cm) – 5 x age (y) – 161 = REE
const gender = 'male'; // prompt('Are you male or female?');
const weight = 100; // prompt('How much do you weigh in KG?');
const height = 185; // prompt('What is your height in cm?');
const age = 23; // prompt('What is your age');
if (sex = 'male') {
stepOne = 10 * weight;
stepTwo = 6.25 * height;
stepThree = 5 * age + 5;
var ree = stepOne + stepTwo - stepThree;
}
if (sex = 'f') {
stepOne = 10 * weight;
stepTwo = 6.25 * height;
stepThree = 5 * age - 161;
var ree = stepOne + stepTwo - stepThree;
}
console.log(ree.toFixed(0)) // Answer is correct - 2171
// TDEE Calculation
var activityLevel = 'moderate activity' // prompt('What is your activity level?\nsedentary/light activity/moderate activity/very active');
if (activityLevel = 'sedentary') {
var tdee = ree * 1.2; // 2642.40
} else if (activityLevel = 'light activity') {
var tdee = ree * 1.375; // 3027.75
} else if (activityLevel = 'moderate activity') {
var tdee = ree * 1.55; // 3413.10
} else { // 3798.45
var tdee = ree * 1.725;
}
console.log(tdee.toFixed(0))
如果你想获取某物的类型,你可以使用 typeof 运算符。当您在 if 语句中使用赋值运算符 (=) 时,它将始终*通过条件。如果要检查相等性,则应使用 ==
或 ===
运算符。
例如,如果您想查看 activity 级别,您可以通过以下方式进行:
var activityLevel = 'moderate activity';
if (activityLevel === 'moderate activity'){
console.log("Moderate Activity");
}
This 是关于 JS 中不同运算符的好文档。
更新:还注意到变量 sex
未定义。您在开始时定义了 gender
,但您正在检查变量 sex
。
当对 TDEE 计算控制流比较运算符使用 =
时,流停止在 if (activityLevel = 'sedentary')
。当我使用 ==
时,它按预期工作。我已经坚持了 2 个小时,我已经阅读了大约 3 个文档,但我无法弄明白。
我知道 ==
用于相同的值和含义,===
用于相同的值和类型,但我认为这与它没有任何关系。有那么一刻我想 =
可能用于类型,在这种情况下如果 activityLevel
等于一个字符串,但我很确定那不是它,因为我没有在文档中遇到它=
.
注意:TDEE 控制流中的注释数字是应该的结果,而不是结果。
// REE Calculation
// Males - 10 x weight (kg) + 6.25 x height (cm) – 5 x age (y) + 5 = REE
// Females - 10 x weight (kg) + 6.25 x height (cm) – 5 x age (y) – 161 = REE
const gender = 'male'; // prompt('Are you male or female?');
const weight = 100; // prompt('How much do you weigh in KG?');
const height = 185; // prompt('What is your height in cm?');
const age = 23; // prompt('What is your age');
if (sex = 'male') {
stepOne = 10 * weight;
stepTwo = 6.25 * height;
stepThree = 5 * age + 5;
var ree = stepOne + stepTwo - stepThree;
}
if (sex = 'f') {
stepOne = 10 * weight;
stepTwo = 6.25 * height;
stepThree = 5 * age - 161;
var ree = stepOne + stepTwo - stepThree;
}
console.log(ree.toFixed(0)) // Answer is correct - 2171
// TDEE Calculation
var activityLevel = 'moderate activity' // prompt('What is your activity level?\nsedentary/light activity/moderate activity/very active');
if (activityLevel = 'sedentary') {
var tdee = ree * 1.2; // 2642.40
} else if (activityLevel = 'light activity') {
var tdee = ree * 1.375; // 3027.75
} else if (activityLevel = 'moderate activity') {
var tdee = ree * 1.55; // 3413.10
} else { // 3798.45
var tdee = ree * 1.725;
}
console.log(tdee.toFixed(0))
如果你想获取某物的类型,你可以使用 typeof 运算符。当您在 if 语句中使用赋值运算符 (=) 时,它将始终*通过条件。如果要检查相等性,则应使用 ==
或 ===
运算符。
例如,如果您想查看 activity 级别,您可以通过以下方式进行:
var activityLevel = 'moderate activity';
if (activityLevel === 'moderate activity'){
console.log("Moderate Activity");
}
This 是关于 JS 中不同运算符的好文档。
更新:还注意到变量 sex
未定义。您在开始时定义了 gender
,但您正在检查变量 sex
。