为什么javascript不能使用£作为函数名

时间:2016-06-29 07:41:14

标签: javascript

我想知道为什么javascript可以使用$(美元符号)作为函数名称但不能使用井号(£)。对此有逻辑或限制吗?

编辑:这个问题与给定问题不重复。并且本网站没有答案的来源。这就像“嘿这是javascript目录找到你正在寻找它”

2 个答案:

答案 0 :(得分:2)

不,没有特别的逻辑,这只是Brendan Eich在1995年5月充满恐惧的十天中所决定的规则。完整的规则are here。 Eich刚刚决定在标识符名称中使用$会很方便。他还允许_(在编程语言中更常见),以及通常的英文字母和数字集(其中数字不能出现在第一个字符中)。

在一个阶段,在规范中尝试将$重新调整为“仅用于机械生成的代码”。这种语言首次出现在ECMAScript第2版(pdf)中,未出现在第1版(pdf)中。它保留在第3版(pdf),然后在5th edition中消失(没有接受第4版)。 This question及其答案解决了这个问题,显然这是尝试使用源自Java的约定。但人们对$(尤其是带有jQuery的John Resig和带有PrototypeJS的Sam Stephenson)表示赞同,所以,那艘船早已航行,因此从第5版规范中删除了该语言。

最终,允许使用各种各样的Unicode字符(例如,相当着名的是,ಠ_ಠ是一个有效的JavaScript标识符),但是在ECMAScript第3版(由Mozilla在{{{ 3}})。

答案 1 :(得分:0)

引自标准ECMA-262 ECMAScript语言规范

  

7.6标识符名称和标识符

     

标识符名称是根据“标识符”中给出的语法解释的标记   Unicode标准第5章的一节,有些小   修改。标识符是不是的标识符名称   ReservedWord(见7.6.1)。 Unicode标识符语法基于   规范和信息性的特征类别由指定   Unicode标准。中指定类别中的字符   必须将Unicode标准的3.0版本视为那些   所有符合ECMAScript实现的类别。

     

本标准规定了特定的字符添加:美元符号   ($)和下划线(_)允许在任何地方   IdentifierName。