在Notepad ++中,我正在编写一个JavaScript文件但有些东西不起作用:单击按钮时必须显示警报,但它无法正常工作。
我使用了Notepad ++提供的自动完成插件,它向我提供了onClick
。
当我将首都C
更改为小c
时,它确实有效。
首先,在查看自动完成中的函数时,我注意到很多函数都使用大写字母。
但是当你将getElementById
更改为getelementbyid
时,你也会收到错误,更糟糕的是,我的学校手册用大写字母写了所有内容,但解决方案都是小写的字母。
那么JavaScript是什么以及它的选择性本质,哪些函数可以在其中包含大写字母,哪些不可以呢?
答案 0 :(得分: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中。想到的一个例外是事件处理程序属性,这些通常被认为是the wrong way to attach to events。更喜欢使用addEventListener
,如下所示:
document.getElementById('divYo').addEventListener('click', modifyText, false);
答案 1 :(得分:6)
一些对象是IE并不总是区分大小写,包括一些/大多数/所有ActiveX - 为什么 XHR.onReadyStateChange 和 XHR.onreadystatechange 都能正常工作在IE5或IE6中很好,但只有后者适用于IE7,FF等中的原生 XMLHttpRequest 对象。
但是,“标准”API套管的快速参考:
没有100%保证。但是,多数方面,这是准确的。
答案 2 :(得分:1)
JavaScript API方法几乎全部使用lowerCamelCase名称进行调用,JavaScript是区分大小写的
答案 3 :(得分:1)
Javascript 应始终区分大小写,但我在Internet Explorer中看到过一些情况,它容忍某些函数名称的大写但不包括其他函数名称。我认为它仅限于Visual Basic中也存在的函数,因为解释器之间存在一些奇怪的近亲繁殖。显然,应避免这种行为,除非您的目的是制作仅在一个浏览器中运行的代码:)