Javascript 哪一个先执行?

Javascript 哪一个先执行?,javascript,html,jscript,Javascript,Html,Jscript,代码如下: <script> document.getElementById('btn').addEventListener('mousedown',(function(){ console.log('code'); })); </script> <input id="btn" type="button" onmousedown="console.log('button')"> document.getElementById

代码如下:

<script>
    document.getElementById('btn').addEventListener('mousedown',(function(){
        console.log('code');
    }));
</script>
<input id="btn" type="button" onmousedown="console.log('button')">

document.getElementById('btn')。addEventListener('mousedown',(function(){
console.log('code');
}));

哪个将首先执行,原因是什么?

内联脚本执行时,
document.getElementById('btn')
计算结果为
null
,并抛出
TypeError

然后,
输入
标记无法解析

但是让我们假设您在
onmousedown
属性中添加了一个结束
,并将
脚本
元素排序在
输入
元素之后。然后您将看到

button
code

因为事件是按照定义的顺序执行的。

您能不能为每个事件添加不同的警报,并查看首先弹出的是什么?看起来您已经掌握了所有信息来自行确定。尝试时发生了什么?我想知道这是规范中定义得很好还是完全依赖于浏览器12/Ubuntu11.04,它是。这是稍微更正的html。文档参考?onmousedown不是“添加”,而是“设置”--可以有多个附加事件,但只有一个“onmousedown”问题是,这两种不同类型的事件处理程序之间的顺序有保证吗?如果是的话,是谁干的?@pst,很好的问题:第1.3节。2@davin当然:“为了实现与HTML4.0的兼容性,实现者可以将表示事件处理程序的属性设置视为在EventTarget上创建和注册EventListener。”:)@pst,但不确定“可能”是什么意思。也就是说,我不确定给予实施者多大程度的宽容,让他们选择不这样做。我想在某个地方有一个介绍文档,定义了每个术语使用的宽大程度(我不是标准专家),但我找不到它。@davin说得好。大卫·托马斯(David Thomas)的评论与我摘录的引语(我相信)不一致。