JavaScript 以及为什么大写字母有时有效有时无效

发布于 2024-07-05 06:42:56 字数 441 浏览 12 评论 0原文

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

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

当我将大写的 C 更改为小写的 c 时,它确实起作用了。

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

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

那么 JavaScript 的本质是什么呢?它对哪些函数可以包含大写字母、哪些函数不能包含大写字母的选择性本质是什么呢?

In Notepad++, I was writing a JavaScript file and something didn't work: an alert had to be shown when a button was clicked, but it wasn't working.

I has used the auto-complete plugin provided with Notepad++, which presented me with onClick.

When I changed the capital C to a small c, it did work.

So first of all, when looking at the functions in the auto-completion, I noticed a lot of functions using capitals.

But when you change getElementById to getelementbyid, you also get an error, and to make matters worse, my handbook from school writes all the stuff with capital letters but the solutions are all done in small letters.

So what is it with JavaScript and its selective nature towards which functions can have capital letters in them and which can't?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

走过海棠暮 2024-07-12 06:42:56

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 方法和属性都在 驼峰式命名法。 我想到的一个例外是事件处理程序属性,这些属性通常被认为是错误的附加方式无论如何,事件。 更喜欢使用 addEventListener 作为在:

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

Javascript is ALWAYS case-sensitive, html is not.

It sounds as thought you are talking about whether html attributes (e.g. onclick) are or are not case-sensitive. The answer is that the attributes are not case sensitive, but the way that we access them through the DOM is.
So, you can do this:

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

or:

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

but through the DOM you must use the correct case. So this works:

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

but you cannot do this:

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

EDIT: CMS makes a great point that most DOM methods and properties are in camelCase. The one exception that comes to mind are event handler properties and these are generally accepted to be the wrong way to attach to events anyway. Prefer using addEventListener as in:

document.getElementById('divYo').addEventListener('click', modifyText, false);
╭ゆ眷念 2024-07-12 06:42:56

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

Javascript should always be case sensitive, but I've seen cases in Internet Explorer where it tolerates all upper case for some function names but not others. I think it is limited to functions that also exist in Visual Basic, as there is some odd inbreeding between the interpreters. Clearly this behavior should be avoided, unless of course your intention is to make code that only runs in one browser :)

菩提树下叶撕阳。 2024-07-12 06:42:56

JavaScript API 方法几乎都是使用 lowerCamelCase 名称调用,并且 JavaScript 区分大小写

JavaScript API methods are almost all called with lowerCamelCase names, and JavaScript is case-sensitive

白色秋天 2024-07-12 06:42:56

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

但是,“标准”API 大小写的快速参考:

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

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

A few objects is IE aren't always case-sensitive, including some/most/all ActiveX -- why both XHR.onReadyStateChange and XHR.onreadystatechange would work fine in IE5 or IE6, but only the latter would work with the native XMLHttpRequest object in IE7, FF, etc.

But, a quick reference for "standard" API casing:

  • UPPERCASE - Constants (generally symbolic, since const isn't globally supported)
  • Capitalized - Classes/Object functions
  • lowercase - Events
  • camelCase - everything else

No 100% guarantees. But, majority-wise, this is accurate.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文