Javascript 为什么要写出console.log?
我有以下内容,我想知道taskInput是如何更新的 我在js的顶部抓取taskInput。然后我向表单中添加一个侦听器,用于“提交”。因此,当我通过单击AddTask提交表单时,为什么不再次抓取taskInput来查看它的新值呢Javascript 为什么要写出console.log?,javascript,addeventlistener,timing,updating,Javascript,Addeventlistener,Timing,Updating,我有以下内容,我想知道taskInput是如何更新的 我在js的顶部抓取taskInput。然后我向表单中添加一个侦听器,用于“提交”。因此,当我通过单击AddTask提交表单时,为什么不再次抓取taskInput来查看它的新值呢 const taskInput=document.getElementById('task'); const form=document.querySelector('form'); const filter=document.querySelector('inpu
const taskInput=document.getElementById('task');
const form=document.querySelector('form');
const filter=document.querySelector('input[name=“filter”]”);
const taskList=document.querySelector('ul.collection');
const clearall=document.querySelector('.clear tasks');
loadAllEventListeners()
函数loadAllEventListeners(){
表格.addEventListener('submit',submit)
}
功能提交(e){
e、 预防默认值();
console.log(taskInput.value)
}
任务列表
任务列表1
新任务
任务
筛选任务
您不是从输入字段值创建常量,而是从id=“task”本身的输入DOM元素创建常量。DOM元素是具有随时间变化的属性的对象。const赋值引用的正是DOM元素的这个实例。对于对象的常量赋值,您无法更改对新对象的引用,但对象中的每个值都是可变的。如果我错误理解了您的问题,请道歉。但您会问,为什么不必手动更新JS中taskInput(输入字段)的值
这意味着为什么它会自动获取每次键入的新值
如果这就是你要问的,那是因为当你写作的时候
const taskInput=document.getElementById('task')代码>
它实际上是获取表示输入字段的对象的引用,而不是实际的.value
属性
因此,taskInput
只是指向输入元素对象,当输入元素对象更新时,作为元素引用的变量也会显示更新后的值
与此类似-
const obj={
价值:2
};
常数参考=obj;
console.log(reference)//将输出{value:2}
obj.value=5;
console.log(reference)//将输出{value:5}
因此,我们从未直接接触参考
变量,我们只更新了obj
,但由于参考
只是指向obj
的值(这是一个对象),它也反映了更新后的值
请查看以下链接以进一步阅读:
很难理解你的问题。taskInput
变量是在
DOM元素中设置的,因此taskInput.value
将始终保存
的当前值。另外,不太确定这与或有何关系。您将对元素的引用保存在变量中,如果元素没有更改,为什么需要再次获取对该元素的引用?