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

时间:2008-09-17 21:37:09

标签: javascript html dom case-sensitive

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

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

当我将首都C更改为小c时,它确实有效。

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

但是当你将getElementById更改为getelementbyid时,你也会收到错误,更糟糕的是,我的学校手册用大写字母写了所有内容,但解决方案都是小写的字母。

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

4 个答案:

答案 0 :(得分:29)

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

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

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

或:

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

但是通过DOM你必须使用正确的案例。所以这有效:

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

但你不能这样做:

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

编辑:CMS强调大多数DOM方法和属性都在camelCase中。想到的一个例外是事件处理程序属性,这些通常被认为是the wrong way to attach to events。更喜欢使用addEventListener,如下所示:

document.getElementById('divYo').addEventListener('click', modifyText, false);

答案 1 :(得分:6)

一些对象是IE并不总是区分大小写,包括一些/大多数/所有ActiveX - 为什么 XHR.onReadyStateChange XHR.onreadystatechange 都能正常工作在IE5或IE6中很好,但只有后者适用于IE7,FF等中的原生 XMLHttpRequest 对象。

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

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

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

答案 2 :(得分:1)

JavaScript API方法几乎全部使用lowerCamelCase名称进行调用,JavaScript是区分大小写的

答案 3 :(得分:1)

Javascript 始终区分大小写,但我在Internet Explorer中看到过一些情况,它容忍某些函数名称的大写但不包括其他函数名称。我认为它仅限于Visual Basic中也存在的函数,因为解释器之间存在一些奇怪的近亲繁殖。显然,应避免这种行为,除非您的目的是制作仅在一个浏览器中运行的代码:)