【问题标题】:What are JScript case sensitivity rules?什么是 JScript 区分大小写规则?
【发布时间】:2009-10-20 15:15:00
【问题描述】:

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

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

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

这让我很困惑,为什么有些函数以不区分大小写的方式工作,而另一些则不然。例如,AGE 不区分大小写,而 ISSAMPGROUP 区分大小写。

【问题讨论】:

  • 应该是 ISSAMPGROUP 还是 ISSAMPLEGROUP?这可能不区分大小写。

标签: c# .net javascript


【解决方案1】:

这个问题的答案很简单 - JavaScript 区分大小写,但浏览器制造商可能会决定以一种尽可能使其更宽容的方式实现其 JavaScript 引擎。

因此,您应该将 JavaScript 视为高度区分大小写,并且仍应更正任何使用不正确大小写的内容,因为供应商到供应商的脚本引擎可能会有所不同,并且它可能不适用于所有浏览器,仅适用于最宽容的浏览器。

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

function IsSampleGroup

必须比阅读更容易

function ISSAMPGROUP

一些可能有效而另一些可能无效的原因可能归结为命名冲突,即您的 JavaScript 中是否存在另一个类似命名的对象。 MyVariable 和 myVariable 和 MYVARIABLE。

【讨论】:

  • 正在尝试使用 Java Script 实现旧版脚本引擎。所以我被糟糕的外壳和命名所困扰。引擎实现的巨大差异意味着我无法使用 Java Script 引擎,不得不为传统语言构建一个新引擎。 :(
【解决方案2】:

JavaScript IS 区分大小写。正如已经提到的,一些浏览器并不总是考虑到这一点,但作为一条规则,您应该尝试始终对大小写和范围敏感进行编码以防止出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-31
    • 2014-05-10
    • 2019-06-19
    • 1970-01-01
    • 2011-06-01
    • 2011-03-18
    • 2011-05-11
    • 2014-11-16
    相关资源
    最近更新 更多