您能帮我在我的JavaScript文件中找到未定义的错误吗?

时间:2019-02-28 01:47:11

标签: javascript

当我console.log它给出未定义,但我检查了10次芽找不到erorr!

let getBody = document.body;
let newElement = document.createElement("h1");

let date = new Date();
let currentHour = date.getHours();

let createTxtMsg;

if (currentHour >= 4 && currentHour < 10) {
  createTxtMsg = "Good Morning!";
} else if (currentHour >= 10 && currentHour < 12) {
  createTxtMsg = "Good Day!";
} else if (currentHour >= 12 && currentHour < 18) {
  createTxtMsg = "Good Afternoon";
} else if (currentHour >= 18 && currentHour < 22) {
  createTxtMsg = "Good evening";
} else if (currentHour >= 22 && currentHour < 4) {
  createTxtMsg = "Good night";
}

console.log(createTxtMsg)
let createEleTxt = document.createTextNode(createTxtMsg);

newElement.appendChild(createEleTxt);
getBody.appendChild(newElement);

2 个答案:

答案 0 :(得分:0)

您的if..else if链不会检查所有条件,因为currentHour总是小于4或(而不是and)大于22。

要简单地考虑该条件,只需添加else语句,或添加其他else if语句即可处理其他条件

.
.
else if (currentHour< 4) {
  createTxtMsg = 'helloo';
}
.
.

答案 1 :(得分:0)

有逻辑错误,如评论说。

我建议您使用这种方法。这更具可读性和易于理解。

    if (22 <= currentHour) {
      createTxtMsg = "Good night";
    } else if (18 <= currentHour) {
      createTxtMsg = "Good evening";
    } else if (12 <= currentHour) {
      createTxtMsg = "Good Afternoon";
    } else if (10 <= currentHour) {
      createTxtMsg = "Good Day!";
    } else if (4 <= currentHour) {
      createTxtMsg = "Good Morning!";
    } else {
      createTxtMsg = "Good night";
    }

完整代码段:

let getBody = document.body;
let newElement = document.createElement("h1");

let date = new Date();
let currentHour = date.getHours();

let createTxtMsg;

if (22 <= currentHour) {
  createTxtMsg = "Good night";
} else if (18 <= currentHour) {
  createTxtMsg = "Good evening";
} else if (12 <= currentHour) {
  createTxtMsg = "Good Afternoon";
} else if (10 <= currentHour) {
  createTxtMsg = "Good Day!";
} else if (4 <= currentHour) {
  createTxtMsg = "Good Morning!";
} else {
  createTxtMsg = "Good night";
}

console.log(createTxtMsg)
let createEleTxt = document.createTextNode(createTxtMsg);

newElement.appendChild(createEleTxt);
getBody.appendChild(newElement);