什么是JScript区分大小写规则?

时间:2009-10-20 15:15:01

标签: c# .net javascript

我正在使用ScriptControlClass作为参考,我认为JScript区分大小写...但是,我的用户群让我感到惊讶...我有几种方法我为所有上层提供了用户,例如:IF,EMPTY ,AGE,PARSE等......

好吧,今天用户提交了一个缺陷,即issampgroup无效。我调查并通知用户该功能是ISSAMPGROUP并且它正常工作......用户回答,除了IF工作的所有其他功能都是小写的。所以我进行了快速测试,除了5个函数之外,其他所有函数都以不区分大小写的方式工作......我非常惊讶地看到年龄和年龄以及所有其他变体的工作和工作正常。下面是我的函数声明方式的示例,我验证了Jscript函数每次调用我的C#...

this.scriptEngine.AddCode(@"function AGE (birthDate) { return cmd.Age(birthDate); };");
this.scriptEngine.AddCode(@"function ISSAMPGROUP (value) { return cmd.IsSampleGroup(value); };");

让我感到困惑的是,为什么某些函数以不区分大小写的方式工作而其他函数不工作。例如,AGE不区分大小写,但ISSAMPGROUP区分大小写。

2 个答案:

答案 0 :(得分:0)

这个问题的答案很简单 - JavaScript 区分大小写,但浏览器制造商可能决定以这样的方式实现他们的JavaScript引擎,以便在可能的情况下使其更加宽容。

因此,您应该将JavaScript视为高度区分大小写,并且任何适用于错误案例的内容仍应更正,因为供应商与供应商的脚本引擎可能不同,并且可能无法在所有浏览器中使用,只有最宽容的浏览器。 / p>

您还强调了ALL CAPS如何不适合命名,尤其是缩写。

function IsSampleGroup

必须比

更容易阅读
function ISSAMPGROUP

有些人可能会工作的原因和其他可能不会归结为命名冲突,即JavaScript中是否存在另一个类似命名的对象。 MyVariable和myVariable和MYVARIABLE。

答案 1 :(得分:0)

JavaScript IS 区分大小写。如前所述,某些浏览器并不总是考虑到这一点,但作为一项规则,您应该尝试始终对案例和范围敏感度进行编码以防止出现问题。