我的 javascript 函数出现函数未定义错误
I am getting a function undefined error with my javascript function
我正在尝试根据 8 位数字输入来计算一个人的年龄。当我尝试 运行 代码时,它说 TypeError
undefined is not a function..
var calcAge = function (dob) {
var age,
mm = dob.substring(0, 2),
dd = dob.substring(2, 4),
yyyy = dob.substring(4, 8),
d = new Date(),
currentDay = d.getDay,
currentMonth = (d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1,
currentYear = d.getFullYear;
if (parseInt("" + mm + dd) >= parseInt("" + currentMonth + currentDay)) {
age = currentYear - yyyy;
} else {
age = (currentYear - yyyy) - 1;
};
return age;
};
d.getDay() 和 d.getFullYear() 是函数而不是字符串值,您使用的是 getDay() ,其中 returns 星期几而不是 getDate() 并且您的最终测试是有点不对。
var calcAge = function (dob) {
var age,
mm = dob.substring(0, 2),
dd = dob.substring(2, 4),
yyyy = dob.substring(4, 8),
d = new Date(),
currentDay = d.getDate(),
currentMonth = (d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1,
currentYear = d.getFullYear();
if (parseInt("" + mm + dd) <= parseInt("" + currentMonth + currentDay)) {
age = currentYear - yyyy;
} else {
age = (currentYear - yyyy) - 1;
};
return age || false;
};
使用这些测试现在看来是正确的
calcAge('02191964');//returns 51
calcAge('02201964');// 51
calcAge('02211964');//50
如果您将 dob 参数作为 8 个整数传递,您的子字符串调用将 return 您看到的错误。
我正在尝试根据 8 位数字输入来计算一个人的年龄。当我尝试 运行 代码时,它说 TypeError
undefined is not a function..
var calcAge = function (dob) {
var age,
mm = dob.substring(0, 2),
dd = dob.substring(2, 4),
yyyy = dob.substring(4, 8),
d = new Date(),
currentDay = d.getDay,
currentMonth = (d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1,
currentYear = d.getFullYear;
if (parseInt("" + mm + dd) >= parseInt("" + currentMonth + currentDay)) {
age = currentYear - yyyy;
} else {
age = (currentYear - yyyy) - 1;
};
return age;
};
d.getDay() 和 d.getFullYear() 是函数而不是字符串值,您使用的是 getDay() ,其中 returns 星期几而不是 getDate() 并且您的最终测试是有点不对。
var calcAge = function (dob) {
var age,
mm = dob.substring(0, 2),
dd = dob.substring(2, 4),
yyyy = dob.substring(4, 8),
d = new Date(),
currentDay = d.getDate(),
currentMonth = (d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1,
currentYear = d.getFullYear();
if (parseInt("" + mm + dd) <= parseInt("" + currentMonth + currentDay)) {
age = currentYear - yyyy;
} else {
age = (currentYear - yyyy) - 1;
};
return age || false;
};
使用这些测试现在看来是正确的 calcAge('02191964');//returns 51 calcAge('02201964');// 51 calcAge('02211964');//50
如果您将 dob 参数作为 8 个整数传递,您的子字符串调用将 return 您看到的错误。