Javascript 为什么要写出console.log?

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

我有以下内容,我想知道taskInput是如何更新的

我在js的顶部抓取taskInput。然后我向表单中添加一个侦听器,用于“提交”。因此,当我通过单击AddTask提交表单时,为什么不再次抓取taskInput来查看它的新值呢

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
    将始终保存
    的当前值。另外,不太确定这与或有何关系。您将对元素的引用保存在变量中,如果元素没有更改,为什么需要再次获取对该元素的引用?