[英]I am getting a function undefined error with my javascript function
我正在嘗試根據8位數字輸入來計算一個人的年齡。 當我嘗試運行代碼時,它說TypeError
undefined不是函數。
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(),它返回星期幾而不是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'); //返回51 calcAge('02201964'); // 51 calcAge('02211964'); // 50
如果您將dob參數作為8個整數傳遞,則您的子字符串調用將返回您看到的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.