JavaScript以及为什么大写字母有时可以工作,有时却不工作

Vor*_*ler 7 html javascript dom case-sensitive

在Notepad ++中,我正在编写一个JavaScript文件,但有些东西不起作用:单击按钮时必须显示警报,但它无法正常工作.

我使用了Notepad ++提供的自动完成插件,它提供给我onClick.

当我把资本C变成小资本时c,它确实有效.

首先,在查看自动完成中的函数时,我注意到很多使用大写的函数.

但是当你改变getElementByIdgetelementbyid,你也会得到一个错误,更糟糕的是,我的学校手册用大写字母写了所有的东西,但解决方案都是用小写字母完成的.

那么JavaScript是什么以及它的选择性本质,哪些函数可以在其中包含大写字母,哪些不可以呢?

Pre*_*aul 29

Javascript 总是区分大小写,html不是.

这听起来像是在谈论html属性(例如onclick)是否区分大小写.答案是属性不区分大小写,但我们通过DOM访问它们的方式是.所以,你可以这样做:

<div id='divYo' onClick="alert('yo!');">Say Yo</div> // Upper-case 'C'
Run Code Online (Sandbox Code Playgroud)

要么:

<div id='divYo' onclick="alert('yo!');">Say Yo</div> // Lower-case 'C'
Run Code Online (Sandbox Code Playgroud)

但是通过DOM你必须使用正确的案例.这样可行:

getElementById('divYo').onclick = function() { alert('yo!'); }; // Lower-case 'C'
Run Code Online (Sandbox Code Playgroud)

但你不能这样做:

getElementById('divYo').onClick = function() { alert('yo!'); }; // Upper-case 'C'
Run Code Online (Sandbox Code Playgroud)

编辑:CMS提出了一个很好的观点,即大多数DOM方法和属性都在camelCase中.想到的一个例外是事件处理程序属性,这些通常被认为是附加到事件的错误方式.更喜欢使用addEventListener如下:

document.getElementById('divYo').addEventListener('click', modifyText, false);
Run Code Online (Sandbox Code Playgroud)


Jon*_*ski 6

一些对象是IE并不总是区分大小写,包括一些/大多数/所有ActiveX - 为什么XHR.onReadyStateChangeXHR.onreadystatechange在IE5或IE6中都能正常工作,但只有后者可以使用本机XMLHttpRequest对象在IE7,FF等

但是," 标准 "API套管的快速参考:

  • 大写 - 常量(通常是符号,因为const不是全局支持的)
  • 大写 - 类/对象函数
  • 小写 - 事件
  • camelCase - 其他一切

没有100%保证.但是,多数方面,这是准确的.