7

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

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

当我将资本更改C为 smallc时,它确实有效。

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

但是当你更改getElementById为时getelementbyid,你也会得到一个错误,更糟糕的是,我学校的手册上所有的东西都是用大写字母写的,但解决方案都是用小写字母写的。

那么 JavaScript 和它对哪些函数可以有大写字母而哪些不能有选择性的本质是什么?

4

4 回答 4

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中。想到的一个例外是事件处理程序属性,它们通常被认为是附加到事件的错误方式。更喜欢使用addEventListener如下:

document.getElementById('divYo').addEventListener('click', modifyText, false);
于 2008-09-17T21:39:47.627 回答
6

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

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

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

没有 100% 的保证。但是,大多数情况下,这是准确的。

于 2008-09-17T22:55:40.627 回答
1

JavaScript API 方法几乎都以小驼峰命名方式调用,并且 JavaScript 区分大小写

于 2008-09-17T21:46:19.187 回答
1

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

于 2008-09-17T21:46:27.737 回答