繁体   English   中英

在函数Javascript中调用函数

[英]Calling function inside a function Javascript

大家好,我正在学习JS,并尝试练习在函数内部使用函数。 因此,我想出了自己的问题来进行编码。 我知道有一种更简便的方法可以解决此问题,而本来可以写得更好,但是出于练习的目的,这是我想出的:

约翰13岁。 编写一个函数,根据约翰的出生年份(高中或中学),找出约翰出生的年份和所上的学校类型。

中学= 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.');
    }
}

如果他在2003年到2004年之间出生,Console会说“约翰上初中”。 如果他出生于1999年至2002年之间,则“约翰上高中”。

结果为空白-没有错误。

我在某处犯了新手错误; 有人能指出我正确的方向吗? 非常感激!

夫妻问题。

第8行: ageJohn == undefined

第9和11行:在JavaScript中, &&逻辑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. 

你有:

var birthyear = calculateBirthYear(ageJohn);

但您尚未在任何地方定义ageJohn calculateBirthYear ,您将其作为参数提供,但这与可以在任何地方访问的变量不同。 我想你打算写:

function defineSchoolTypeJohn(ageJohn) {
    var birthYear = calculateBirthYear(ageJohn);
    ...

现在,您已经将ageJohn定义ageJohn函数的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM