JavaScript以及为什么大写字母有时起作用而有时不起作用
在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%的保证。但是,从多数角度来看,这是正确的。