为何getElementById采用驼峰命名,而onclick却不使用?
为什么JavaScript里函数/属性命名会有驼峰与非驼峰的差异?
这个问题问到点子上了!这种命名风格的不一致,本质是历史起源和规范迭代造成的,咱们拆成两个部分来解释:
DOM操作方法的驼峰命名
像getElementById()这类方法,属于DOM(文档对象模型)的标准操作API,是在ECMAScript(JavaScript的官方标准)逐步成熟后设计的。为了和JavaScript核心语法的命名习惯保持一致,这类方法统一采用了驼峰命名法(camelCase)——首字母小写,后续每个单词首字母大写,让代码风格更统一易读。事件属性的小写连写命名
而onclick这类事件属性,起源要早得多,是直接从早期HTML的事件属性演变来的。在最初的HTML里,事件属性是用短横线分隔的(比如<button on-click="...">),但JavaScript的标识符不允许出现短横线,所以就改成了不带横线的全小写连写onclick。这属于历史遗留的命名习惯,为了兼容早期的代码和开发者的使用惯性,就一直保留到了现在。
你给出的示例代码格式化后是这样的:
document.getElementById("demo").onclick = function() {myFunction()}; document.getElementById("demo").innerHTML = "YOU CLICKED ME!";
顺便提一句,现在更推荐的现代事件绑定方式是addEventListener('click', myFunction)——这里的事件名click延续了早期的小写风格,但绑定方法addEventListener是符合规范的驼峰命名,也能看出新规范对历史遗留的兼容与平衡。
内容的提问来源于stack exchange,提问作者Jerald George
相关产品推荐
相关产品推荐

