gpt4 book ai didi

javascript - 使用函数表达式的困难

转载 作者:行者123 更新时间:2023-11-30 15:02:25 25 4
gpt4 key购买 nike

希望你能回答!

var myform = document.getElementById("myform"),
saveBtn = document.getElementById("submit");
saveBtn.addEventListener("click", saveInfo);

var saveInfo = function (e){
e.preventDefault();
var dateValue = document.getElementById("inputdeadline").value;
var todoValue = document.getElementById("textarea").value;
todoValue = todoValue.replace(/\n/g," ");
if ( dateValue > 24 || dateValue <= 0) {
myform.reset();
return false;
};
if (!(todoValue)) {
myform.reset();
return false;
};
var todoObj = {
todoValue,
dateValue
};
if (localStorage.getItem("localTodoItem") === null) {
var todoArray = [];
todoArray.push(todoObj);
todoArray.sort(function (a, b) {
return a.dateValue - b.dateValue;
});
localStorage.setItem("localTodoItem", JSON.stringify(todoArray));
} else {
var todoArray = JSON.parse(localStorage.getItem("localTodoItem"));
todoArray.push(todoObj);
todoArray.sort(function (a, b) {
return a.dateValue - b.dateValue;
});
localStorage.setItem("localTodoItem", JSON.stringify(todoArray));
};
showTodoItems();
myform.reset();
};

在这里,当我为这个 saveInfo 函数使用函数声明时,它正确地执行了所有功能,但是当我使用函数表达式时,它只是重新加载页面,但没有任何反应。请帮我。如果您需要更多关于代码的说明 please visit github .

最佳答案

这是因为函数声明是hoisted ,而函数表达式不是。您在执行表达式之前使用 saveInfo,这适用于声明但不适用于表达式。

Function declaration hoisting on MDN

关于javascript - 使用函数表达式的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46304737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com