大家好,我正在学习JS并试图在函数中练习使用函数。所以,我已经提出了自己的代码问题。我知道有一种更简单的方法可以做到这一点并且问题可以更好地编写,但为了练习,这就是我提出的:
约翰13岁。写一个函数来找出John出生的年份,以及他根据他的出生年份 - 高中或中学参加的学校类型。
初中= 2003年 - 2004年 高中= 1999年 - 2002年
function calculateBirthYearJohn(ageJohn) {
var currentYear = 2017;
var birthYearJohn = currentYear - ageJohn;
return birthYearJohn;
}
function defineSchoolTypeJohn(birthYear) {
var birthYear = calculateBirthYearJohn(ageJohn);
if (birthYear >= 2003 & <= 2004) {
console.log('John goes to Middle School.');
} else if (birthYear >= 1999 & <= 2002) {
console.log('John goes to High School.');
}
}
控制台会说&#34;约翰去中学&#34;如果他出生在2003年和2004年之间; &#34;约翰去高中&#34;如果他出生于1999年至2002年之间。
空白结果 - 没有错误。
我在某个地方犯了一个新手的错误;有人可以指出我正确的方向吗?非常感谢!
答案 0 :(得分:0)
夫妻问题。
第8行:ageJohn == undefined
第9行和第11行:在JavaScript中,&&
是Logical AND运算符(两个&符号)。一个单一的&符号是Bitwise AND运算符。此外,比较仅一次在两个变量之间起作用,因此,您的链接尝试无效。
请参阅下面的工作示例。
function calculateBirthYear(ageJohn) {
const currentYear = 2017
const birthYear = currentYear - ageJohn
return birthYear
}
function defineSchoolType(ageJohn) {
const birthYear = calculateBirthYear(ageJohn)
if (birthYear >= 2003 && birthYear <= 2004) console.log('John goes to Middle School.')
else if (birthYear >= 1999 && birthYear <= 2002) console.log('John goes to High School.')
else console.log('John doesn\'t go to Middle School or High School')
}
defineSchoolType(13) // Middle School.
defineSchoolType(15) // High School.
defineSchoolType(20) // Neither.
答案 1 :(得分:0)
你有:
var birthyear = calculateBirthYear(ageJohn);
但您尚未在任何地方定义ageJohn
。在calculateBirthYear
中,您将其作为参数,但这与可以在任何地方访问的变量不同。我想你打算写:
function defineSchoolTypeJohn(ageJohn) {
var birthYear = calculateBirthYear(ageJohn);
...
现在,您已将ageJohn
定义为函数的参数。