JavaScript以及为什么大写字母有时起作用而有时不起作用

时间:2020-03-05 19:00:09  来源:igfitidea点击:

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

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

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

因此,首先,当查看自动补全中的功能时,我注意到很多使用大写字母的功能。

但是,当我们将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);

回答

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

回答

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

回答

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

但是,"标准" API外壳的快速参考:

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

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