我没有发现错误,我在做什么错?这必须是一个愚蠢且非常简单的理由...
在不带参数的情况下调用此函数时,应在以下代码中使用当前年份,但会出现“未定义”错误
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear;
}
console.log(year)
}
答案 0 :(得分:1)
您的函数运行良好-当您不带任何参数调用它时,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()
答案 1 :(得分:0)
您可以检查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));
答案 2 :(得分:0)
非常感谢。 原因是.getFullYear
之后缺少括号。答案 3 :(得分:0)
唯一遗漏的是year = year.getFullYear
function get_ostersonntag(year){
if ((year == "") || (year == null)){
year= new Date();
year = year.getFullYear();
}
console.log(year)
}
答案 4 :(得分:-1)
您可以尝试
function get_ostersonntag(year){
if (!year){
year= new Date();
year = year.getFullYear;
}
console.log(year)
}
答案 5 :(得分:-1)
更新您的if条件:
function get_ostersonntag(year){
if (!year) {
year= new Date();
year = year.getFullYear();
}
console.log(year)
}
当年份的值伪造(未定义,null或”)时,它将进入if循环。