为什么在调用不带参数的函数时会出现未定义错误?
Why do I get an undefined error when calling a function without parameter?
我没有发现错误,我做错了什么?这一定是一个愚蠢而简单的理由......
在不带参数的情况下调用此函数时,应在以下代码中使用当前年份,但出现 'undefined' 错误
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear;
}
console.log(year)
}
您可以检查 year
是否为 falsy,即空字符串 ''
、null
、undefined
、false
等值,但零 0
以及 NaN
并检查 year
是否不为零。
function get_ostersonntag(year) {
if (!year && year !== 0) {
return new Date().getFullYear();
}
return year;
}
console.log(get_ostersonntag());
console.log(get_ostersonntag(0));
你可以试试
function get_ostersonntag(year){
if (!year){
year= new Date();
year = year.getFullYear;
}
console.log(year)
}
更新您的 if 条件:
function get_ostersonntag(year){
if (!year) {
year= new Date();
year = year.getFullYear();
}
console.log(year)
}
只要年份有假值(undefined、null 或 ''),它就会进入 if 循环。
您的函数工作正常 - 当您不带参数调用它时,year
参数隐式分配给 undefined
值。 undefined == null
为真,所以执行 if
块。
我怀疑让您感到困惑的是您返回了 year.getFullYear
,这是一个函数值。我认为您想实际 调用 这个函数来获得结果:
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear();
}
console.log(year)
}
get_ostersonntag()
谢谢大家。
原因是 .getFullYear
后缺少括号
你唯一漏掉的是 year = year.getFullYear
后面的括号
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear();
}
console.log(year)
}
我没有发现错误,我做错了什么?这一定是一个愚蠢而简单的理由......
在不带参数的情况下调用此函数时,应在以下代码中使用当前年份,但出现 'undefined' 错误
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear;
}
console.log(year)
}
您可以检查 year
是否为 falsy,即空字符串 ''
、null
、undefined
、false
等值,但零 0
以及 NaN
并检查 year
是否不为零。
function get_ostersonntag(year) {
if (!year && year !== 0) {
return new Date().getFullYear();
}
return year;
}
console.log(get_ostersonntag());
console.log(get_ostersonntag(0));
你可以试试
function get_ostersonntag(year){
if (!year){
year= new Date();
year = year.getFullYear;
}
console.log(year)
}
更新您的 if 条件:
function get_ostersonntag(year){
if (!year) {
year= new Date();
year = year.getFullYear();
}
console.log(year)
}
只要年份有假值(undefined、null 或 ''),它就会进入 if 循环。
您的函数工作正常 - 当您不带参数调用它时,year
参数隐式分配给 undefined
值。 undefined == null
为真,所以执行 if
块。
我怀疑让您感到困惑的是您返回了 year.getFullYear
,这是一个函数值。我认为您想实际 调用 这个函数来获得结果:
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear();
}
console.log(year)
}
get_ostersonntag()
谢谢大家。 原因是 .getFullYear
后缺少括号你唯一漏掉的是 year = year.getFullYear
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear();
}
console.log(year)
}