繁体   English   中英

JavaScript以及大写字母为何有时起作用而有时不起作用的原因

[英]JavaScript and why capital letters sometimes work and sometimes don't

在Notepad ++中,我正在编写一个JavaScript文件,但某些操作不起作用:单击按钮后必须显示警报,但该按钮不起作用。

我使用了Notepad ++随附的自动完成插件,该插件向我展示了onClick

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

因此,首先,在查看自动完成功能时,我注意到很多使用大写字母的功能。

但是,当您将getElementById更改为getelementbyid ,也会出错,并且使情况更糟的是,我从学校getelementbyid手册中用大写字母写了所有内容,但解决方案全部用小写字母完成。

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

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);

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

" API casing: 但是,“ ” API外壳的快速参考:

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

没有100%的保证。 但是,从多数角度来看,这是正确的。

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

Javascript 应该始终区分大小写,但是我已经在Internet Explorer中看到了一些案例,在该案例中,它允许某些函数名使用大写字母,而其他函数名则不允许。 我认为它仅限于Visual Basic中也存在的函数,因为解释器之间存在一些奇怪的近交。 显然,应该避免这种行为,除非您的意图当然是使代码仅在一个浏览器中运行:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM